[Python] come chiudere in modo corretto le Window pygtk

Matteo Perini perini.matteo a gmail.com
Ven 25 Maggio 2012 09:02:46 CEST


>> Ciao lista,
> ciao Matteo,
>
Ciao e grazie per avermi dedicato del tempo

> Ci sono diverse cose che non vanno negli esempi che hai allegato,
> sinceramente ho guardato di fretta ma le prime cose da sistemare sono:
>
> - usa gtk.Buider invece dell'obsoleto (da molto) libglade

Fatto!
Non sapevo che libglade fosse obsoleto... è la prima gui che costruisco 
e ho trovato un po' di esempi on-line...
Ne è uscito un collage...
>
> - perchè hai definito dei tuoi segnali che poi non usi? In linea
> generale definire dei nuovi segnali non è una buona idea, tutti i
> controlli hanno già i loro segnali, usa quelli.
Fatto!
Grazie per la dritta (pensavo che i segnali fossero l'unico modo per 
interfacciarsi con gade)
> - non vedo il delete-event collegato ad un evento (il problema che hai
> segnalato)
Vedi sotto...
>
> - hai scritto la GUI a metà con glade e a metà scrivendo il codice a
> mano, il mantenimento diventa infernale
Concordo ma secondo te mi conviene creare le varie finestre con glade 
(tutte) o usare solo gtk (però la gui potrebbe complicarsi a breve).
>
> - "global num" urla vendetta....
era solo una reminescenza di un test che avevo fatto... tolta!
>
> ciao
Purtroppo però non ho ancora risolto...
Ho inserito i delete event come mi hai consigliato
ad esempio così:
self.main_calibration.connect('delete-event',  
close_calib,self.main_calibration)

def close_calib(window,event,finestra):
             finestra.destroy()
             return True

ma quando provo a riaprire la finestra con:
def on_btn_main_calib_clicked(self,widget):
         self.main_calibration(self)

mi da il seguente errore:
Traceback (most recent call last):
   File "GuiAndrea2.py", line 53, in on_btn_main_calib_clicked
self.main_calibration(self)
TypeError: 'gtk.Window' object is not callable

sembra quasi che non riesca a ri-caricare la finestra.
Qualche idea??
Nel frattempo proverò a creare anche le finestre secondarie con glade.
Grazie a tutti.
Ciao
Matteo




Maggiori informazioni sulla lista Python