Comment dois-je afficher une minuterie de mise à jour en permanence à l'aide PyGTK?

StackOverflow https://stackoverflow.com/questions/2259386

  •  20-09-2019
  •  | 
  •  

Question

Je suis en train d'écrire un programme de minuterie en Python en utilisant PyGTK. Il est précis à l'endroit de centièmes. En ce moment, je me sers d'une étiquette constamment mis à jour. Ceci est un problème, parce que si je redimensionnez la fenêtre pendant que la minuterie est en marche, Pango plus souvent jette une erreur fou et mon programme se termine. Il est pas toujours de la même erreur, mais différents ceux qui je suppose est une certaine forme de tirage au sort a échoué. En outre, les mises à jour de l'étiquette plus lent et plus lent que j'augmente la taille des caractères.

Alors, je me demande s'il y a une façon plus correcte pour afficher la minuterie. Y at-il une méthode plus stable que la mise à jour en permanence une étiquette?

Était-ce utile?

La solution 2

Je me suis le problème. Il était en effet un problème avec les fils. Je ne l'aurais deviné que moi-même. L'astuce consiste à utiliser gobject.timeout_add () pour créer une temporisation au lieu d'une boucle filetée. Voici quelques informations sur gobject.timeout_add ():

  

http://faq.pygtk.org/index .py? req = show & file = faq01.021.htp

Ne pas oublier d'avoir votre fonction retourne Vrai ou la minuterie arrêtera.

Autres conseils

Mise à jour de l'étiquette doit fonctionner parfaitement fiable, donc je suppose que vous faites quelque chose d'autre mal. Utilisez-vous des fils? Qu'est-ce que votre code ressemble? Quelle est la taille que vous pouvez condenser votre programme (en supprimant la fonctionnalité, et non par obscurcissant le code), sans faire disparaître le problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top