Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[attenzione: niubbio] programmare in gtk - domande
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
Gremo
Guru
Guru


Joined: 27 Feb 2006
Posts: 450

PostPosted: Fri Jul 28, 2006 11:33 pm    Post subject: [attenzione: niubbio] programmare in gtk - domande Reply with quote

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
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sat Jul 29, 2006 1:59 am    Post subject: Reply with quote

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
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sat Jul 29, 2006 4:48 pm    Post subject: Reply with quote

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
View user's profile Send private message
redmatrix
Apprentice
Apprentice


Joined: 13 Jan 2005
Posts: 211

PostPosted: Sun Jul 30, 2006 9:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
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