[Python] come chiudere in modo corretto le Window pygtk
Matteo Perini
perini.matteo a gmail.com
Mer 23 Maggio 2012 12:56:30 CEST
Ciao a tutti,
Scusate la domanda banale ma sto cercando da un po di risolvere il
seguente problema ma non ne vengo a capo.
Ho una applicazione con una finestra principale che contiene dei
semplici pulsanti.
La pressione dei pulsanti mi fa aprire (a seconda del caso) una nuova
Window che mi da' la possibilità di inserire del testo.
Fino a qui tutto ok.
Quando però chiudo la Window e successivamente provo a riaprirla per
inserire dei nuovi dati ottengo:
File "Gui.py", line 46, in on_btn_main_calib_clicked
self.main_calibration(self)
TypeError: 'gtk.Window' object is not callable
e quindi non riesco a riaprire la finestra
il codice della finestra in questione è:
def main_calibration(self,widget,data=None):
def calib1(self,entry):
self.num = entry.get_text()
print self.num
self.main_calibration = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.main_calibration.set_position(gtk.WIN_POS_CENTER)
self.main_calibration.set_title("Calibrazione")
self.main_calibration.set_border_width(15)
#self.main_calibration.connect("destroy", self.exit)
hbox1 = gtk.HBox(True, 0)
hbox2 = gtk.HBox(True, 0)
vbox = gtk.VBox(True, 0)
self.entry1 = gtk.Entry()
self.entry1lab = gtk.Label("ciao")
num=self.entry1.get_text()
self.button1 = gtk.Button("Calibra")
self.button1.connect("clicked",calib1, self.entry1)
self.label1 = gtk.Label("Numero di acquisizioni valide:")
hbox1.pack_start(self.label1, True, True, 5)
hbox1.pack_start(self.entry1,True,True,5)
hbox2.pack_start(self.button1, True, True, 5)
vbox.pack_start(hbox1, True, False, 5)
vbox.pack_start(hbox2, True, False, 5)
self.main_calibration.add(vbox)
self.main_calibration.show_all()
gtk.main()
Se avete avuto la pazienza di leggere fino a qui vi sarete accorti che
c'è una linea commentata:
#self.main_calibration.connect("destroy", self.exit)
questa chiude sia la Window voluta che la finestra principale (cosa che
non deve accadere).
Ogni suggerimento su come risolvere questo piccolo problema è ben accetto.
Grazie a tutti
Matteo P
Maggiori informazioni sulla lista
Python