我使用Phil的PyGame實用程序(PGU)。我有一個區域需要顯示變化的可滾動變量列表。這是一個調試窗口,應該在變量發生變化時顯示實時更新。我試着用幾個不同的小部件和幾種不同的方式來做這件事,但是當我在更新循環中更新小部件時,我遇到了滾動條鎖定問題。PyGame 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會重新繪製標籤以顯示新標籤,但沒有任何更改。我已經嘗試過使用表格和列表,但我可以讓它顯示的唯一方法是購買完全清除列表/表格並重新添加導致滾動條和幀率問題的所有內容。
任何幫助或想法?謝謝。
Pgu的文檔相當模糊,但我認爲你應該看看構建在widget對象中的「next」函數。這可能是你正在尋找的。 –