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
# dans la FAQ
Posté par Brahici . Évalué à 3.
http://www.async.com.br/faq/pygtk/index.py?req=show&file(...)
De manière générale, la FAQ est bourrée d'astuces en tout genre pour améliorer les interfaces graphiques.
# mauvaise idée.
Posté par schyzomarijks . Évalué à 1.
Quand ton utilisateur clique sur le bouton, tu dois crée un thread qui fait le travail, et non un thread qui gère ponctuellement l'affichage.
ainsi, le thread qui gère les fenêtres a tout le loisir de gérer l'affichage en attendant que le second thread finisse de bosser.
# tentatives....
Posté par eMerzh (site web personnel) . Évalué à 1.
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....
Posté par eMerzh (site web personnel) . Évalué à 1.
ca semble donc reglé :D
merci ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.