[Python] Glade3 e statusbar
Ciao a tutti ho il seguente parte di codice: class CreaGUI: def __init__(self): self.ApplicazioneGlade = gtk.glade.XML(PercorsoGlade) self.EventiGlade ={on_FinestraPrincipale_delete_event:gtk.main_quit, self.statusbar = self.ApplicazioneGlade.get_widget('statusbar') self.context_id = self.statusbar.get_context_id('statusbar') self.statusbar.push(self.context_id, Messaggio di prova statusbar) # ... # ... gtk.main() def Compila(self,obj): context_id = self.statusbar.get_context_id('statusbar') self.statusbar.push(context_id, 'Cambia Messaggio Statusbar') quando lo eseguo si apre correttamente la finestra e sullo statusbar mi compare 'Messagio di prova...' . Ho la necessità, quando viene richiamato Compila, di cambiare il messaggio. Dove sbaglio? Ciao, Marcello ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Glade3 e statusbar
2013/9/29 Marcello marce...@linuxvil.it: Ciao a tutti ciao Marcello, ho un po' di commenti a parte il codice, innanzi tutto ti consiglio di non usare le vecchie PyGTK ma di usare pygobject introspection che utilizza le nuove GTK3, PyGTK non è più mantenuto ed è sconsigliato per scrivere nuovo codice. [1][2] Ad ogni modo, a prescindere se usi GTK2 o GTK3 gtk.glade.XML è super-deprecato, usa gtk.Builder al suo posto. [3] Questo consiglio puoi anche non ascoltarlo, usa uno stile consistente per i nomi di classi/metodi/variabili, e.g. nomi classi Capital, metodi e variabili lowercase, etc... quando lo eseguo si apre correttamente la finestra e sullo statusbar mi compare 'Messagio di prova...' . la statusbar tiene uno stack di messaggi per ogni context, ovvero a chiamate successive di push() il messaggio viene sostituito con quello che hai appena inviato, se devi rimuovere il messaggio puoi usare pop() che ti elimina l'ultimo dallo stack, attenzione che se quello mostrato è di un altro context potrebbe non fare quello che pensi. [4] Ho la necessità, quando viene richiamato Compila, di cambiare il messaggio. Dove sbaglio? Dal codice che hai postato il metodo Compila non viene mai eseguito. [1] https://wiki.gnome.org/PyGObject [2] https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html [3] https://developer.gnome.org/gtk3/3.10/GtkBuilder.html [4] https://developer.gnome.org/gtk3/3.10/GtkStatusbar.html#gtk-statusbar-pop ciao -- Gian Mario Tagliaretti GNOME Foundation member gia...@gnome.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Glade3 e statusbar
2013/9/29 Marcello marce...@linuxvil.it: Dal codice che hai postato il metodo Compila non viene mai eseguito. si, e vero, ma ho postato solo parte del codice mettendo solo la parte interessata. era interessante vedere anche quando il metodo viene eseguito, altrimenti non si capisce perchè non ti funziona. ciao -- Gian Mario Tagliaretti GNOME Foundation member gia...@gnome.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Glade3 e statusbar
Dal codice che hai postato il metodo Compila non viene mai eseguito. si, e vero, ma ho postato solo parte del codice mettendo solo la parte interessata. era interessante vedere anche quando il metodo viene eseguito, altrimenti non si capisce perchè non ti funziona. aggiungo richiamo class CreaGUI: def __init__(self): self.ApplicazioneGlade = gtk.glade.XML(PercorsoGlade) self.EventiGlade ={on_FinestraPrincipale_delete_event:gtk.main_quit, on_VerTab_clicked:self.VerificaTab, on_ContrRemoto_clicked:self.ContrRemoto, on_CopiaImpianti_clicked:self.CopiaImpianti, on_OpenPers_clicked:self.ApreSaePers, on_ElencoImpianti_row_activated:self.SelezioneImpianto, on_VisNumImp_clicked:self.VisNumImp, on_SincroDB_clicked:self.SincroDB, on_Compila_clicked:self.Compila, on_VisualizzaCopia_clicked:self.VisualizzaCopia, } self.statusbar = self.ApplicazioneGlade.get_widget('statusbar') self.context_id = self.statusbar.get_context_id('statusbar') self.statusbar.push(self.context_id, Messaggio di prova statusbar) # ... # ... gtk.main() def Compila(self,obj): context_id = self.statusbar.get_context_id('statusbar') self.statusbar.push(context_id, 'Cambia Messaggio Statusbar') ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Glade3 e statusbar
2013/9/29 Marcello marce...@linuxvil.it: def Compila(self,obj): self.statusbar.push(self.context_id, 'Cambia Messaggio Statusbar') prova così (untested) ciao -- Gian Mario Tagliaretti GNOME Foundation member gia...@gnome.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Glade3 e statusbar
def Compila(self,obj): self.statusbar.push(self.context_id, 'Cambia Messaggio Statusbar') prova così (untested) no non va. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python