Я использую утилиты Phil's 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 довольно расплывчата, но я думаю, вы должны заглянуть в «следующую» функцию, встроенную в объект виджета. Это может быть то, что вы ищете. –