Pergunta

Eu tenho algum código:

l1 = clutter.Label()
l1.set_position(100,100)
for i in range(0,10):
    l1.set_text(str(i))
    time.sleep(1)

Isso é projetado para mostrar uma contagem de 1 a 10 segundos na tela em desordem, mas eu estou recebendo um erro estranho. Quando eu executar o script normalmente a tela funciona como deveria fazer, mas não há nenhum texto exibido até 10 segundos são para cima. No entanto, quando eu corro com pontos de interrupção no APO os shows texto até muito bem.

Eu também estou recebendo um erro estranho no início do programa:

do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vlank_mode configuration parameter.

Mas eu não vejo por que afetaria o código fora do break points, mas não em pontos de interrupção.

Qualquer ajuda seria muito apreciada.

Foi útil?

Solução

Não tenho certeza se você já descobriu a resposta para isso, mas:

A razão que você está tendo esse problema é porque você está bloqueando o segmento principal (onde todo o desenho ocorre) com o seu time.sleep () chamadas, impedindo a biblioteca de redesenhar a tela.

por exemplo. seu código está fazendo isso:

  1. Clutter redesenha a tela.
  2. Você circuito de mais de dez segundos e mudar os tempos de texto dez.
  3. Clutter redesenha a tela.

Se você quiser fila de algo em um timer, você deve olhar para gobject.timeout_add .

Outras dicas

Você já tentou postagem (ou pesquisar ) na lista de discussão Clutter? Aqui de alguém que tem a mesma mensagem sobre drmWaitVBlank por exemplo.

Meu palpite é a maioria das pessoas no SO seria não estar familiarizado com a solução de problemas desordem. Eu sei que não sou :)

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