View previous topic :: View next topic |
Author |
Message |
Gremo Guru
Joined: 27 Feb 2006 Posts: 450
|
Posted: Fri Jul 28, 2006 11:33 pm Post subject: [attenzione: niubbio] programmare in gtk - domande |
|
|
1) Cosa vuol dire esattamente "programma gtk+ scritto in python"? cioè attraverso linguaggio come python (e immagino C++) è possibile creare interfacce grafiche in gtk+? in che modo? gtk non è un vero e proprio linguaggio?
2) esattamente quali sono i linguaggi con cui si può creare programmi in gtk+? Ci sono sostanziali differenze di prestazioni al livello di esecuzione?
3) con quale linguaggio conviene iniziare? io conosco solo il java...
4) cosa vuol dire java bindings for gtk?
5) dove posso trovare della documentazione per iniziare? (la cosa più semplice possibile)
grazie a tutti quelli che mi aiuteranno |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Sat Jul 29, 2006 1:59 am Post subject: |
|
|
me ne sto occupando un pochino anche io ultimamente.
1) il linguaggio di programmazione è il python. lo utilizzi attraverso le librerie che ti vengono forniti da pacchetto come pygtk. puoi creare delle interfacce.
il gtk+ non è un linguaggio di programmazione ma una serie di librerie che si basano sulle librerie gdk e le glibc per ottenere un'ambiente di programmazione coerente con il quale ottenere interfacce grafiche per X e da quello che ho capito anche per il framebuffer.
2) i linguaggi supportati da quanto ne ho capito sono c (gtk+) c++ (gtkmm) java (bindings tramite le libgtk-java) python (pygtk) ruby (dev-ruby/ruby-gtk / dev-ruby/ruby-gtk2) perl (dev-perl/gtk-perl / dev-perl/gtk2-perl) c# tramite dev-dotnet/gtk-sharp e credo basta ma non ne sono sicuro, comunque la scelta è elevata.
3) se conosci il java inizia con quello. da quel poco che conosco la libreria non sembra male anche se l'approccio delle gtk+ lo preferisco. anche le pygtk non mi sembrano impossibili di primo acchitto. ti sconsiglierei, in quanto mi sono leggermente ostili le gtkmm.
4) sempre da quanto ho capito non è stata riscritto tutto quello che riguarda la definizione degli oggetti in java ma solo un'interfaccia che esegue del codice c già pronto. logicamente potrei sbagliarmi.
5) ogni programma che ti ho citato è presente in portage. in ogni caso se utilizzi come ambiente grafico gnome ed hai la use flag doc attivata dovresti trovarti tirettamente molti esempi in /usr/share/doc e /usr/share/gtk-doc altrimenti ti basta accedere al sito di riferimento e guardarti la documentazione che è scritta abbastanza bene. per quanto riguarda gtk+ esiste il tutorial in italiano ma non è aggiornato e potresti trovare dei problemi con alcuni widget, credo ti convenga guardare direttamente quello in inglese. almeno, io dopo me lo sono dovuto leggere. |
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Sat Jul 29, 2006 4:48 pm Post subject: |
|
|
In aggiunta a ciò detto da Ic3m4n:
2) Se usi un linguaggio interpretato la velocità di esecuzione in teoria dovrebbe essere minore rispetto a quella di un linguaggio compilato, dipende poi molto da come è scritto il programma ovviamente.
3) Io ci ho lavorato dapprima con il perl e poi con il python, il secondo mi sembra molto più semplice: in pochi giorni, senza saper nulla di python, sono riuscito a scrivere un po di programmini in pygtk. Comunque le librerie gtk si usano sopraggiù allo stesso modo, indipendentemente dal linguaggio utilizzato. Inoltre ti consiglio di usare glade per disegnare l'interfaccia: perdi molto meno tempo a definire la grafica del programma e riduci di molto le linee di codice.
5) sul sito di pygtk trovi molta roba, in particolare ti consiglio di partire da un tutorial che ti spiega le cose base e poi di guardare la documentazione che spiega dettagliatamente ogni cosa di ogni widget. _________________ Running Fast! |
|
Back to top |
|
|
redmatrix Apprentice
Joined: 13 Jan 2005 Posts: 211
|
Posted: Sun Jul 30, 2006 9:23 pm Post subject: |
|
|
Gtk+ sta per (Gimp ToolKit) e fu creato inizialmente per il programma di grafica Gimp (appunto), solo successivamente se ne diffuse l'uso a tantissimi altri programmi.
Un toolkit, in questo caso lo si potrebbe chiamare toolkit grafico, consiste in un set di librerie che contengono funzioni per la creazione di finestre, widgets (pulsanti, labels, text-entry, etc) e funzioni per il loro controllo e "uso".
Le gtk+ sono state scritte in linguaggio C quindi sono disponibili "nativamente" per questo linguaggio; esempio:
Code: | #include <gtk/gtk.h>
main ()
{
GtkWidget *Finestra;
Finestra = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (Finestra);
gtk_main();
return 0;
}
|
Successivamente vennero scritti dei "bindings" per altri linguaggio, ovvero vennero create delle librerie apposite per python, ruby, C++, C#, Java, etc, che permettono di "interfacciarsi con le gtk e usarle.
Per esempio, quando programmi in python e vuoi usare le gtk, devi usare le librerie per tale linguaggio (le pygtk); esempio:
Code: | import gtk
Finestra = gtk.Window()
Finestra.show()
gtk.main()
|
Le risposte alle tue domande sono:
1a) La definizione programma gtk+ scritto in python è alquanto impropria, sarebbe più corretto dire "programma scritto in python che fa uso del gtk"
1b) Esatto, attraverso linguaggi come python, C++ e altri, è possibile creare interfacce grafiche in gtk
1c) Sfruttando i bindings (tranne per il C) che sono librerie apposite per i vari linguaggi che si interfacciano con gtk
1d) No, gtk è un toolkit, ovvero librerie di funzioni per la creazione di interfacce grafiche
2a) I linguaggi sono molteplici, quelli ufficiali sono C++, Java, Python e Perl, altri non ufficiali sono C#, Ada, Ruby, etc. (chiaramente gtk sono native per il C) http://www.gtk.org/bindings.html
2b) Sostanziali direi no, chiaramente la velocità di gtk rispecchia quella del linguaggio.
3) Se conosci Java inizia con Java, python potrebbe tornarti utile visto che è molto semplice, altrimenti soffri e fortificati con il C
4) Libreria per java (si dice classe?) che include funzioni (e oggetti?) per la creazione di interfacce grafiche Gtk
5) Io ho iniziato da qui http://www.gtk.org/
Prego.
PS1: Il codice dimostrativo non è funzionante, per brevità ho omesso un sacco di cose inutili in questo contesto
PS2: La prossima volta cerca di fare una domanda per volta. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|