Dimensione: 4811
Commento: revisioni qui e òì
|
Dimensione: 4629
Commento: Indice + link morto
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 5: | Linea 5: |
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]] [[TableOfContents(1)]]|| | [[Indice(depth=2)]] |
Linea 12: | Linea 12: |
È possibile installare '''Glade''' e '''!PyGlade''' con il proprio [:AmministrazioneSistema/InstallareProgrammi:gestore di pacchetti] o da [:AmministrazioneSistema/Terminale:terminale] con i pacchetti ''glade-gnome'' e ''python-glade2''. | È possibile installare '''Glade''' e '''!PyGlade''' con il proprio [:AmministrazioneSistema/InstallareProgrammi:gestore di pacchetti] o da terminale con i pacchetti ''glade-gnome'' e ''python-glade2''. |
Introduzione
Glade è un potente strumento RAD (Rapid Application Development) per la creazione di interfacce del toolkit GTK+ 2 e per il desktop [:AmbienteGrafico/GNOME:GNOME 2] in modo semplice e veloce. Le interfacce disegnate con Glade vengono salvate in un file XML che rende facile l'integrazione con molti linguaggi, tra cui [:Programmazione/Python:Python]. PyGlade è stato sviluppato per rendere utilizzabili le interfacce senza problemi e con poco codice.
Installazione
È possibile installare Glade e PyGlade con il proprio [:AmministrazioneSistema/InstallareProgrammi:gestore di pacchetti] o da terminale con i pacchetti glade-gnome e python-glade2.
Integrazione negli script
Visualizzare una GUI
Visualizzare una GUI è davvero molto semplice: è sufficiente mettere il file .glade creato dall'editor in una cartella nota e scrivere il seguente codice:
Visualizzazione di una finestra sostituendo opportunamente example.glade con il file XML contenente la GUI.
Gestire i segnali
Anche la gestione dei segnali non necessita codice particolare perché può essere programmata con Glade come mostra questo screenshot:
attachment:segnali.png
Fig.1: Gestione dei segnali in Glade
Per fare in modo che i segnali vengano gestiti correttamente, è necessario creare tutte le funzioni collegate ai segnali e chiamare il metodo signal_autoconnect dopo aver inizializzato la GUI passando come unico parametro un dizionario con i riferimenti ai metodi o un oggetto.
1 import gtk
2 import gtk.glade
3
4 def on_ok_clicked(button):
5 # Chiudi il programma alla pressione del tasto 'OK'
6 gtk.main_quit()
7
8 # Genera e visualizza la finestra
9 xml = gtk.glade.XML('example.glade')
10 # Connetti i segnali alle funzioni
11 # locals permette di passare in un dizionario tutte le funzioni dichiarate nel modulo
12 xml.signal_autoconnect(locals())
13
14 # Attendi fino a quando la finestra non viene chiusa
15 gtk.main()
Gestione dei segnali
Esempi
Esempi forniti con `python-glade`
In questo esempio viene mostrato come visualizzare una finestra e gestire l'evento associato a un qualsiasi oggetto per chiudere il programma. Il nome del file Glade può essere passato come parametro opzionale dalla riga di comando. Se non viene specificato alcun file, viene utilizzato il file test.glade contenuto nella stessa directory del programma.
1 #!/usr/bin/env python
2 import sys
3 import gtk
4 import gtk.glade
5
6 if len(sys.argv) > 1:
7 fname = sys.argv[1]
8 else:
9 fname = 'test.glade'
10
11 # create widget tree ...
12 xml = gtk.glade.XML(fname)
13
14 def gtk_main_quit(*args):
15 gtk.main_quit()
16
17 xml.signal_autoconnect(locals())
18
19 gtk.main()
glade-demo.py
Con questo codice viene mostrata una finestra e vengono gestiti i suoi segnali attraverso un'istanza di classe.
1 #!/usr/bin/env python
2 #
3 # Small test to demonstrate glade.XML.signal_autoconnect on an instance
4 #
5
6 import pygtk
7 pygtk.require('2.0')
8
9 import gtk, gtk.glade
10
11 class SimpleTest:
12 def __init__(self):
13 xml = gtk.glade.XML('test2.glade')
14 xml.signal_autoconnect(self)
15
16 def on_button1_clicked(self, button):
17 print 'foo!'
18
19 test = SimpleTest()
20 gtk.main()
autoconnect.py
Altri esempi
Il codice mostra una schermata principale con un pulsante per chiudere l'applicazione. Quando viene premuto, viene mostrato un messaggio di saluto in una finestra separata che chiude tutto il programma alla pressione di un bottone.
1 #!/usr/bin/env python
2
3 import gtk
4 import gtk.glade
5
6 class MainWindow:
7 def __init__(self):
8 # Visualizza la schermata principale
9 xml = gtk.glade.XML('main.glade')
10 # Associa la pressione di un pulsante a self.show_message
11 xml.signal_autoconnect(self)
12
13 def show_message(self, button):
14 # Visualizza un saluto in una nuova finestra prima di chiudere
15 xml = gtk.glade.XML('message.glade')
16 # Associa la pressione di un pulsante a self.quit
17 xml.signal_autoconnect(self)
18
19 def quit(self, button):
20 # Chiude tutte le finestre
21 gtk.main_quit()