Forum Programmation.python PyGTK et les thread

Posté par  (site web personnel) .
Étiquettes : aucune
0
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
  • # dans la FAQ

    Posté par  . Évalué à 3.

    Toute la section 20 de la FAQ pygtk est consacrée à l'utilisation des threads, tu dois pouvoir y trouver ton bonheur.

    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  . Évalué à 1.

    l'idée n'est pas bonne,

    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  (site web personnel) . Évalué à 1.

    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

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.