我有一些代码:

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.

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

任何帮助将不胜感激。

有帮助吗?

解决方案

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

您遇到此问题的原因是您通过 time.sleep() 调用阻塞了主线程(所有绘图发生的地方),从而阻止库重新绘制屏幕。

例如。您的代码当前正在执行以下操作:

  1. 混乱会重新绘制屏幕。
  2. 您循环十秒并更改文本十次。
  3. 混乱会重新绘制屏幕。

如果你想在计时器上排队,你应该看看 gobject.timeout_add.

其他提示

你有没有尝试过 发帖 (或者 寻找)在混乱邮件列表中? 这里例如,某人收到了有关 drmWaitVBlank 的相同消息。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top