Python, GTK e finestre multiple
Posted by hosiris su aprile 17, 2011
Come facciamo a gestire l’apertura di una finestra quando viene cliccato un pulsate su una finestra “principale”?
Per chi ha concetti di OOP potrebbe dire: basta istanziare un nuovo oggetto. Ed infatti è così.
Supponiamo di progettare le nostra due interfacce con Glade, chiamiamole test1.glade e test2.glade. La prima interfaccia avrà un pulsante “click” che aprirà la seconda interfaccia.
import pygtk pygtk.require("2.0") import gtk import gtk.glade class Test2: def __init__(self): self.gladefile2 = "test2.glade" self.test2 = gtk.glade.XML(self.gladefile2) self.window1 = self.test2.get_widget('window1') self.test2.signal_autoconnect(self) def OnTest2(self, data=None): self.window1.destroy() class Test1: def __init__(self): self.gladefile = "test1.glade" self.test1 = gtk.glade.XML(self.gladefile) self.test1.signal_autoconnect(self) def main(self): gtk.main() def OnClick(self, data=None): t2 = Test2() def OnExit(self, data=None): gtk.main_quit() if __name__ == "__main__": t = Test1() t.main()
Il codice è semplicissimo, ma notiamo come è possibile chiudere la seconda finestra senza interferire sul lavoro della prima! Questo perché abbiamo richiamato il metodo destroy dell’oggetto istanziato e non il main_quit di GTK.
Buon divertimento
Python, GTK e finestre multiple | Pupugnao.it said
[…] Continua a Leggere […]