0

私はいくつかのコードを持っています:

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.

しかし、それがブレークポイントからのコードに影響を与えるが、ブレークポイントには影響を与えない理由はわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

4

これに対する答えがすでにわかっているかどうかはわかりませんが、

この問題が発生する理由は、メイン スレッド (すべての描画が行われる場所) を time.sleep() 呼び出しでブロックし、ライブラリが画面を再描画できないようにするためです。

たとえば、あなたのコードは現在これを行っています:

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

タイマーで何かをキューに入れたい場合は、gobject.timeout_addを調べる必要があります。

于 2009-12-30T22:35:11.490 に答える
0

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

私の推測では、SO のほとんどの人はクラッターの問題を解決することに慣れていないでしょう。私はそうではないことを知っています:)

于 2009-09-19T03:56:10.387 に答える