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?

Foi útil?

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 ():

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

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top