[Python] problema aggiornamento interfaccia
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
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