Como devo exibir um cronômetro constantemente atualizado usando o pygtk?
Pergunta
Estou escrevendo um programa de timer no Python usando o pygtk. É preciso para o centésimo lugar. No momento, estou usando um rótulo constantemente atualizado. Isso é um problema, porque se eu redimensionar a janela enquanto o timer estiver em execução, o Pango geralmente lança algum erro maluco e meu programa termina. Nem sempre é o mesmo erro, mas os diferentes que eu suponho que são alguma forma de sorteio. Além disso, o rótulo atualiza mais lento e mais lento à medida que eu aumenta o tamanho da fonte.
Então, estou me perguntando se existe uma maneira mais correta de exibir o timer. Existe um método mais estável do que atualizar constantemente um rótulo?
Solução 2
Eu descobri o problema. Foi realmente um problema com os tópicos. Eu nunca teria adivinhado isso sozinho. O truque é usar gobject.timeout_add () para criar um cronômetro em vez de um loop rosqueado. Aqui estão algumas informações sobre gobject.timeout_add ():
Não se esqueça de fazer com que sua função retorne verdadeira, ou o timer parará.
Outras dicas
Atualizar um rótulo deve funcionar perfeitamente de maneira confiável, então suspeito que você esteja fazendo outra coisa errada. Você está usando threads? Como é o seu código? Quão pequeno você pode condensar seu programa (removendo a funcionalidade, não ofuscando o código), sem fazer o problema desaparecer?