[Python] Glade3 e statusbar

2013-09-29 Per discussione Marcello
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-09-29 Per discussione Gian Mario Tagliaretti
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-09-29 Per discussione Gian Mario Tagliaretti
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

2013-09-29 Per discussione Marcello
 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-09-29 Per discussione Gian Mario Tagliaretti
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

2013-09-29 Per discussione Marcello
 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