[Python] problema aggiornamento interfaccia

2013-03-05 Per discussione Matteo Perini

Ciao a tutti,
Vi disturbo per chiedervi una delucidazione sulla gestione dei 
MessageDialog.


Ho una piccola applicazione che in taluni casi deve segnalare degli errori.
Ho creato la funzione error1 come sotto; questa viene richiamata durante 
l'esecuzione del codice quando avviene un errore.


Il problema consiste nel fatto che il messaggio compare a video in modo 
incompleto ovvero viene visualizzata la finestrella ma senza la scritta 
"Attenzione!" e senza i pulsanti.
Se faccio tutto da linea di comando non ho nessun problema, il tutto 
viene visualizzato correttamente.

Qualcuno ha qualche suggerimento in merito... magari a voi è già successo.
Ho buttato un po di tempo per cercare on-line ma non ho trovato molto 
solo qualcosa su gtk.main_iteration() ma non sembra funzionare allo scopo.


Ecco la funzione:

def error1(self,widget):
md = gtk.MessageDialog(None,
gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR,
gtk.BUTTONS_OK, "Attenzione!")
resp=md.run()
if resp==gtk.RESPONSE_OK or resp==gtk.RESPONSE_DELETE_EVENT:
try:
widget.set_active(True)
except:
print 'cannot do'
md.destroy()

Grazie
Ciao
Matteo P
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] problema aggiornamento interfaccia

2013-03-05 Per discussione Marco Giusti
On Tue, Mar 05, 2013 at 05:13:01PM +0100, Matteo Perini wrote:
> Il problema consiste nel fatto che il messaggio compare a video in
> modo incompleto ovvero viene visualizzata la finestrella ma senza la
> scritta "Attenzione!" e senza i pulsanti.
> Se faccio tutto da linea di comando non ho nessun problema, il tutto
> viene visualizzato correttamente.
> Qualcuno ha qualche suggerimento in merito... magari a voi è già successo.
> Ho buttato un po di tempo per cercare on-line ma non ho trovato
> molto solo qualcosa su gtk.main_iteration() ma non sembra funzionare
> allo scopo.
> 
> Ecco la funzione:
> 
> def error1(self,widget):
> md = gtk.MessageDialog(None,
> gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR,
> gtk.BUTTONS_OK, "Attenzione!")
> resp=md.run()
> if resp==gtk.RESPONSE_OK or resp==gtk.RESPONSE_DELETE_EVENT:
> try:
> widget.set_active(True)
> except:
> print 'cannot do'
> md.destroy()

sembra che la finestra non venga disegnata. fai qualcosa di strano con
il main loop? senza avere tante idee mi chiedo se stai usando i thread.

prova ad arrivare al minimo codice indispensabile per riprodurre il
problema, senza è un po' difficile aiutarti.

ciao
m.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python