質問

いくつかのコードがあります:

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()呼び出しで(すべての描画が発生する)メインスレッドをブロックし、ライブラリが画面を再描画できないようにするためです。

E.g。あなたのコードは現在これを行っています:

  1. クラッターは画面を再描画します。
  2. 10秒間ループし、テキストを10回変更します。
  3. クラッターは画面を再描画します。

タイマーで何かをキューに入れたい場合は、 gobject.timeout_add

他のヒント

投稿(または検索)がClutterメーリングリストにありますか? こちらは、たとえばdrmWaitVBlankについて同じメッセージを受け取った人です

SOのほとんどの人は、クラッターの問題の解決に慣れていないでしょう。私は:)

ではないことを知っています
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top