Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 6 del 14/11/2007 12.15.16

Nascondi questo messaggio

BR

Introduzione

Glade è un potente strumento RAD (Rapid Application Development) per la creazione di interfacce del toolkit GTK+ 2 e per il desktop 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 Python. PyGlade è stato sviluppato per rendere utilizzabili le interfacce senza problemi e con poco codice.

Installazione

È possibile installare Glade e PyGlade con [:AmministrazioneSistema/Synaptic:Synaptic] o da shell con il seguente comando:

apt-get install glade-gnome python-glade

Integrazione negli script

Visualizzare una GUI

Visualizzare una GUI è davvero molto semplice: è sufficiente mettere il file .glade creato dall'editor in una directory nota e scrivere il seguente codice:

   1 import gtk
   2 import gtk.glade
   3 # Genera e visualizza la finestra
   4 gtk.glade.XML('example.glade')
   5 # Attendi fino a quando la finestra non viene chiusa
   6 gtk.main()

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()


CategoryProgrammazione CategoryDaRevisionare