
Iniziamo dal più classico esempio, una semplice finestra con la sola barra del titolo, senza alcun contenuto, che mostrerà soltanto Hello World.
Avviato Glade (qui nella versione 3), in un nuovo progetto, cliccare sul pulsante Finestra all’interno della sezione Livelli principali.
Cliccare sulla nuova finestra apparsa e sulla finestra Editor sulla destra sarà possibile assegnare i valori alle proprietà della finestra. Limitiamoci inizialmente al solo titolo sulla barra superiore.

Sul campo Titolo della finestra scriveremo Hello World e sarà il titolo che verrà mostrato in cima alla fienstra. Appuntiamo inoltre il nome della finestra, qui chiamata window1 poiché sarà necessario per accedere alla stessa dal codice Python. Salviamo il progetto Glade da qualche parte col nome hello.glade e passiamo all’editor Python.
In un nuovo progetto, il codice minimale per avviare quest’interfaccia sarà il seguente:
import gtk
import gtk.glade
import pygtk
pygtk.require("2.0")
gladeFile = gtk.glade.XML('hello.glade')
window1 = gladeFile.get_widget('window1')
if window1:
window1.show()
gtk.main()
La sezione iniziale conterrà le importazioni dei moduli esterni, quindi con gtk.glade.XML verrà caricato il file hello.glade creato in precedenza. Il riferimento al file glade sarà necessario per accedere ai componenti al suo interno. Il primo di questi sarà infatti il riferimento alla finestra window1, la forma generale è gladeFile.get_widget(‘window1′) dove window1 è il controllo inserito in Glade.
Per abitudine tendo ad assegnare lo stesso nome tra i controlli contenuti nel file Glade e gli oggetti Python ma ciò non è in alcun modo obbligatorio.
Se è stato possibile recuperare l’oggetto window1 allora verrà eseguito il metodo show della finestra (GTKWindow) che la mostrerà a schermo e quindi avviato il cosiddetto mainloop, il ciclo principale che terrà in esecuzione l’applicazione GTK, mediante gtk.main().
Questo codice finito consiste in un’applicazione minimale che si occupa soltanto di caricare il file hello.glade e mostrare la finestra window1. Avviando il programma Python il risultato sarà appunto una finestra e basta.

Tuttavia questo codice non è ancora sufficiente per occuparsi anche della chiusura dell’applicazione e quindi l’interruzione del ciclo principale. Premendo il pulsante di chiusura si chiuderà la finestra ma non il programma PyGTK, che resterà invisibilmente in memoria. Se avviato da terminale basterà chiuderlo premendo CTRL+C o affidarsi ai comandi del sistema operativo per uccidere il processo.
E’ possibile scaricare il progetto Python e l’interfaccia Glade.
Bello, complimenti, ti ho già inserito nel mio segnalibri.
Una cosa sola : per avviare il programma, da terminale do “python hello.py”. E’ questo il modo giusto o ce ne sono altri?
Complimenti, era proprio ora che qualcuno si occupasse di pygtk.
In rete c’è davvero poco in italiano, questo blog mi sarà utilissimo, grazie di averlo creato.
nikalza quella e` una delle maniere
l’altra e` rendere il file eseguibile se usi linux (chmod a+x nomefile.py) e aggiungere sulla prima riga dello script
#!/usr/bin/env python
se usi windows basta dargli estensione .pyw
ciao e grazie a tutti
Quando eseguo il programma, su wiondows, ottengo questo errore:
Traceback (most recent call last):
File “test.py”, line 2, in
import gtk.glade
ImportError: DLL load failed: Impossibile trovare il modulo specificato.
Premetto che eseguendo programmi con PYGTK, che non prevedono l’uso di GLADE, funzionano benissimo.
Ciao
Ciao, e grazie per il lavoro hai fatto su queste pagine.
Un problema: avviando da terminale lo script Hello.glade ricevo il seguente errore:
patro@patro-desktop:~/Documenti/Glade/01 HelloWorld$ python Hello.py
(Hello.py:7713): libglade-WARNING **: Expected . Got .
(Hello.py:7713): libglade-WARNING **: did not finish in PARSER_FINISH state
Traceback (most recent call last):
File “Hello.py”, line 8, in
gladeFile = gtk.glade.XML(‘Hello.glade’)
RuntimeError: could not create GladeXML object
hai idea da che cosa possa dipendere?
Grazie ancora e ciao.
Scusa se ripeto, ma mi sono accorto che il blog elimina dai messaggi tutte le parti tra parentesi angolari, per cui riscrivo l’errore sostituendo alle parentesi angolari quelle quadre
patro@patro-desktop:~/Documenti/Glade/01 HalloWorld$ python Hello.py
(Hello.py:1792): libglade-WARNING **: Expected [glade-interface]. Got [interface].
(Hello.py:1792): libglade-WARNING **: did not finish in PARSER_FINISH state
Traceback (most recent call last):
File “Hello.py”, line 8, in [module]
gladeFile = gtk.glade.XML(‘Hello.glade’)
RuntimeError: could not create GladeXML object
patro@patro-desktop:~/Documenti/Glade/01 HalloWorld$
Grazie ancora e ciao
ciao
quando apri glade ti fa una domanda sul tipo di file da generare.
chiede se usare il formato gtkbuilder o libglade, devi scegliere quest’ultimo.
per un progetto gia` salvato lo trovi su modifica – preferenze di glade
ciao, intanto ottimo sito, sia questo che ubuntutrucchi.
scrivo perché ho qualche problema con questo tutorial. quando eseguo il file .py mi restituisce come errore:
ImportError: No module named glade
eppure mi sembra di aver fatto tutto giusto..
su che sistema/distribuzione stai operando?
maverick beta, pyhton 2.6.6
installa la libreria glade dal pacchetto python-glade2
niente da fare. adesso quando faccio partire il file .py l’icona diventa una croce e quando clicco col sinistro mi salva uno screenshot sul desktop del desktop
non hai messo lo shebang
#!/usr/bin/python
o
#!/usr/bin/env python
scusami, ma ho un problema, eseguendo il codice con Geany l’unica cosa che ottengo è la geany_run_shell.sh e nessuna finestra di “Ciao Mondo!!”, nessun errore o altro, rimane aperta la shell senza nessun messaggio, nemmeno quello della fine programma.
avrai saltato qualche riga, probabilmente quella con window1.show()
ho trovato l’errore, scorrendo nelle impostazioni della finestra di glade, lo scroll aveva cambiato l’opzione Tipo finestra in “finestra a comparsa”.