[Python] passare da una finestra all'altra (GUI)
Matteo Perini
perini.matteo a gmail.com
Gio 2 Ago 2012 15:31:42 CEST
Ciao a tutti:
Rieccomi con un nuovo quesito.
La mia applicazione ha una finestra principale dalla quale (fino ad
oggi) richiamavo altre finestre (che per semplicità avevo inglobato
direttamente nella classe principale). Le interfacce sono disegnate con
glade in gtk.
Ecco un esempio di cosa fa il codice quando clicco su un bottone.
def on_btn_zero_clicked(self,widget,data=None):
def turnback(self2):
gtk.Widget.set_sensitive(self.btn_test,True)
self.w.destroy()
self.win.set_visible(True)
b=gtk.Builder()
b.add_from_file('zero.glade')
self.w = b.get_object("window1")
self.w.show_all()
self.back.connect('clicked',turnback)
gtk.main()
Così non ho nessun problema... quando viene schiacciato il bottone la
finestra principale viene nascosta, appare la "secondaria" e quando
clicco sul bottone back la finestra viene chiusa e resa nuovamente
visibile la finestra principale.
Ora l'applicazione si sta complicando e volevo mettere almeno alcune
finestre in classi separate dalla principale (ha senso vero?).
Il problema che mi blocca è che dalla finestra principale riesco a
richiamare la secondaria con:
self.inc=Window() ##Window è la classe della finestra secondaria
self.win.set_visible(False) ##nascondo la finestra principale
self.inc.main() ## faccio partire la finestra secondaria
ma quando voglio tornare alla principale non riesco a far riapparire la
finestra.
Se chiudo (con destroy) la finestra secondaria si chiude tutto il programma.
Se prima di fare il destroy della secondaria faccio partire la
principale, la secondaria rimane aperta.
self.xxx=Win_main().win ##richiamo l'oggetto finestra principale
self.xxx.set_visible(True) ## la rendo visibile
self.win.destroy() ##chiudo la secondaria (non chiude)
Come faccio ad ottenere lo stesso comportamento di prima?
Qualche idea???
Se non sono stato chiaro ditemelo che cercherò di spiegarmi meglio.
Grazie
Matteo P
Maggiori informazioni sulla lista
Python