Как мне отображать постоянно обновляемый таймер с помощью PyGTK?
Вопрос
Я пишу программу таймера на Python, используя PyGTK.Это с точностью до сотых.Сейчас я использую постоянно обновляемую этикетку.Это проблема, потому что если я изменяю размер окна во время работы таймера, Pango чаще всего выдает какую-нибудь сумасшедшую ошибку, и моя программа завершается.Это не всегда одна и та же ошибка, но разные, которые, как я полагаю, являются формой неудачного розыгрыша.Кроме того, по мере увеличения размера шрифта метка обновляется все медленнее и медленнее.
Итак, мне интересно, есть ли более правильный способ отображения таймера.Есть ли более стабильный метод, чем постоянное обновление метки?
Решение 2
Я понял проблему.Действительно, проблема была в нитях.Я никогда бы сам этого не догадался.Хитрость заключается в том, чтобы использовать gobject.timeout_add() для создания таймера вместо многопоточного цикла.Вот некоторая информация о gobject.timeout_add():
Не забудьте вернуть функцию True, иначе таймер остановится.
Другие советы
Обновление метки должно работать совершенно надежно, поэтому я подозреваю, что вы делаете что-то еще не так.Вы используете нити?Как выглядит ваш код?Насколько маленькой вы можете сократить свою программу (путем удаления функциональности, а не запутывания кода), не устранив при этом проблему?