Programmation.python : PyGTK et les thread
Posté par eMerzh (Jabber id, page perso, ) le 23 août 2006
Hello, voila je réalise une petite application avec Python et GTK.
cette application contient notemment un bouton qui lorsqu'on appuye dessu, fait travailler le programme pendant quelques secondes puis répercute les changement sur l'inerface.
évidemment l'interface freeze durant l'opération du bouton,
j'ai donc décidé de créer un thread arretable qui aurai pour fonction d'actualisé l'interface pendant que le principal continuerai le traitement.
seulement je ne sait pas quoi utilisé pour que l'interface arretre de freezer , j'ai tester une boucle avec
"gtk.gdk.window_process_all_updates()"
ou "gtk.main_iteration(False)"
ou même "gtk.main_iteration()"
rien n'y fais, ca freez toujours....
auriez vous une idée ou une piste pour moi?
merciii
cette application contient notemment un bouton qui lorsqu'on appuye dessu, fait travailler le programme pendant quelques secondes puis répercute les changement sur l'inerface.
évidemment l'interface freeze durant l'opération du bouton,
j'ai donc décidé de créer un thread arretable qui aurai pour fonction d'actualisé l'interface pendant que le principal continuerai le traitement.
seulement je ne sait pas quoi utilisé pour que l'interface arretre de freezer , j'ai tester une boucle avec
"gtk.gdk.window_process_all_updates()"
ou "gtk.main_iteration(False)"
ou même "gtk.main_iteration()"
rien n'y fais, ca freez toujours....
auriez vous une idée ou une piste pour moi?
merciii
> Lire le message (4 commentaires, moyenne: 1,5).
Vous avez demandé le commentaire #745724.



tentatives....
bon merci de votre aide déjà....
j'ai tenté avec la FAQ,
j'ai rajouter
import gobject
gobject.threads_init()
au début de mon code et
gtk.threads_enter()/gtk.threads_leave() de chaque coté de mon thread
résultat ? heeuh pas de différence.... :s
j'ai également tenté de mettre ce qui mettai du temps dans le thread...
là c plus étrange comme résultat.. il marche de temps en temps, mais une fois sur 2 il freeze une fois qu'il a fini le thread
[^]Re: tentatives....
ok bon j'avais oublier de mettre les gobject.idle_add()
ca semble donc reglé :D
merci ;)