Clutter不会在断点之外更新屏幕

时间:2009-09-18 20:01:49

标签: python linux graphics clutter-gui

我有一些代码:

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

这是为了在杂乱的屏幕上显示1到10秒的计数,但我得到一个奇怪的错误。当我正常运行脚本时,屏幕会按预期运行,但直到10秒钟才显示文本。但是,当我在pdb中使用断点运行时,文本显示正常。

我在程序开始时也遇到了一个奇怪的错误:

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

但我不明白为什么这会影响断点的代码,但不会影响断点。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

不确定你是否已经找到答案,但是:

您遇到此问题的原因是您正在使用time.sleep()调用阻止主线程(发生所有绘图的位置),从而阻止库重新绘制屏幕。

E.g。您的代码目前正在执行此操作:

  1. Clutter重绘屏幕。
  2. 你循环十秒钟并将文字改十次。
  3. Clutter重绘屏幕。
  4. 如果您想在计时器上排队,您应该查看gobject.timeout_add

答案 1 :(得分:0)

您是否在Clutter邮件列表上尝试过posting(或searching)? Here有人就drmWaitVBlank收到了相同的消息。

我的猜测是,SO上的大多数人都不熟悉解决Clutter问题。我知道我不是:)