Pregunta

Tengo un código:

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

Eso está diseñado para mostrar un conteo de 1 a 10 segundos en la pantalla en desorden, pero recibo un error extraño. Cuando ejecuto el script normalmente, la pantalla se ejecuta como debería, pero no aparece ningún texto hasta que transcurren 10 segundos. Sin embargo, cuando ejecuto con puntos de interrupción en pdb, el texto aparece muy bien.

También recibo un error extraño al inicio del programa:

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

Pero no veo por qué eso afectaría el código fuera de los puntos de interrupción pero no en los puntos de interrupción.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

No estoy seguro si ya ha descubierto la respuesta a esto pero:

La razón por la que tiene este problema es porque está bloqueando el hilo principal (donde ocurre todo el dibujo) con sus llamadas time.sleep (), evitando que la biblioteca vuelva a dibujar la pantalla.

Por ejemplo. su código está haciendo esto actualmente:

  1. Clutter vuelve a dibujar la pantalla.
  2. Se repite durante diez segundos y cambia el texto diez veces.
  3. Clutter vuelve a dibujar la pantalla.

Si desea poner en cola algo en un temporizador, debe buscar en gobject.timeout_add .

Otros consejos

¿Ha intentado publicación (o buscando ) en la lista de correo Clutter? Aquí es alguien que recibió el mismo mensaje sobre drmWaitVBlank, por ejemplo.

Supongo que la mayoría de la gente en SO no estaría familiarizada con la resolución de problemas de Clutter. Sé que no soy :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top