Как мне отображать постоянно обновляемый таймер с помощью PyGTK?

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

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пишу программу таймера на Python, используя PyGTK.Это с точностью до сотых.Сейчас я использую постоянно обновляемую этикетку.Это проблема, потому что если я изменяю размер окна во время работы таймера, Pango чаще всего выдает какую-нибудь сумасшедшую ошибку, и моя программа завершается.Это не всегда одна и та же ошибка, но разные, которые, как я полагаю, являются формой неудачного розыгрыша.Кроме того, по мере увеличения размера шрифта метка обновляется все медленнее и медленнее.

Итак, мне интересно, есть ли более правильный способ отображения таймера.Есть ли более стабильный метод, чем постоянное обновление метки?

Это было полезно?

Решение 2

Я понял проблему.Действительно, проблема была в нитях.Я никогда бы сам этого не догадался.Хитрость заключается в том, чтобы использовать gobject.timeout_add() для создания таймера вместо многопоточного цикла.Вот некоторая информация о gobject.timeout_add():

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

Не забудьте вернуть функцию True, иначе таймер остановится.

Другие советы

Обновление метки должно работать совершенно надежно, поэтому я подозреваю, что вы делаете что-то еще не так.Вы используете нити?Как выглядит ваш код?Насколько маленькой вы можете сократить свою программу (путем удаления функциональности, а не запутывания кода), не устранив при этом проблему?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top