Phil の PyGame Utilities (PGU) を使用しています。変化するスクロール可能な変数のリストを表示する必要がある領域があります。これは、変数が変更されたときに変数のライブ更新を表示する必要があるデバッグ ウィンドウです。いくつかの異なるウィジェットといくつかの異なる方法でこれを試してみましたが、更新ループでウィジェットを更新するとスクロールバーがロックアップするという問題があります。
私の最初のアイデアは、リストにラベルを配置してから、ラベルを変更し、更新または再描画関数を呼び出すことでしたが、うまく機能していないようです。それを機能させるために、使用していたウィジェットを完全にクリアし、更新ループごとにすべてのラベルを再度追加しました。これにより、スクロールバーに問題が発生し、フレーム レートが低下します。
これが私がそれがうまくいくと思った方法です:
self.l = gui.List(width = self.config['uiwidth']-10, height = self.config['height']-230)
self.add(self.l, 5, 255)
self.label = gui.Label("UNCHANGED",align=-1)
if self.firstTimeSelectingBot == True:
for i in range(len(dbot.customDebugVariableList)):
self.l.add(self.label, value = i)
self.firstTimeSelectingBot = False
self.label = gui.Label("CHANGED",align=-1)
self.label.repaint()
リストにラベルを追加してから、ラベルを変更します。repaint を呼び出すと、ラベルが再描画されて新しいラベルが表示されると思いましたが、何も変わりません。テーブルとリストでこれを試しましたが、それを表示する唯一の方法は、リスト/テーブルを完全にクリアし、スクロールバーとフレームレートの問題を引き起こすすべてを再度追加することです。
助けやアイデアはありますか?ありがとう。