Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Retourner aux forums || Retourner au forum Programmation.python

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

> Lire le message (4 commentaires, moyenne: 1,5).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

dans la FAQ

Posté par Brahici () le 23/08/2006 à 07:56. (lien). É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.

--
python, postgresql, xml, gtk, linux, open-source !

mauvaise idée.

Posté par schyzomarijks () le 23/08/2006 à 07:59. (lien). É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.

--
OO watching you !!!

tentatives....

Posté par eMerzh (Jabber id, page perso, ) le 23/08/2006 à 08:54. (lien). É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

  • [^]Re: tentatives....

    Posté par eMerzh (Jabber id, page perso, ) le 23/08/2006 à 09:03. (lien). Évalué à 1.

    ok bon j'avais oublier de mettre les gobject.idle_add()
    ca semble donc reglé :D
    merci ;)

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.python