Forum Programmation.python PyGTK et raffraichissement des widgets

Posté par  .
Étiquettes : aucune
0
24
jan.
2007
Salut
J'ai fait une appli simple avec deux widgets :
un label et un bouton

Quand je clique sur le bouton, le bout de code récupère un fichier via une URL HTTP et retransfere le fichier sur un serveur FTP.
A chaque étape du code, je mets à jour le widget label pour indiquer les
différentes étapes.

Mon problème est que le widget label n'est rafraichi qu'a la fin de
toutes les étapes, et pas au fur et à mesure.

Existe t il un moyen de forcer le rafraichissement des widgets ?

Merci.

David.
  • # idle

    Posté par  (site web personnel) . Évalué à 3.

    Il faut utiliser les fonctions g_idle_add.
    Il y a ici un exemple d'utilisation de cette technique de mise à jour, appelée "lazy loading": http://log.emmanuelebassi.net/documentation/lazy-loading/
    C'est du C/GTK, ça devrait aller, même si tu fais du python, l'esprit est le même: utiliser la boucle principale, qui appelle réguilièrement les fonctions idle quand elle ne fait rien, et en profiter pour mettre à jour ton label.

    Ça évite le multithreading, qui ajoute de la complexité pour rien, et de toute façon, il est conseillé de toujours manipuler les éléments graphiques uniquement dans le thread principal (windows ne supporte pas).

    Vois aussi les FAQ pygtk: http://www.async.com.br/faq/pygtk/index.py?req=show&file(...)

Suivre le flux des commentaires

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