Мне нужна функция «добавить новую группу элементов управления» на панель управления, созданную с помощью PySimple GUI. Каждый выбирает , какой тип группы элементов управления каждый раз, поэтому он не может быть предопределен так же, как описано в этот ответ до Как отображать различные макеты на основе кнопки щелчки в PySimple GUI? (Постоянное окно l oop)
Для краткости я изложил здесь проблему полностью вплоть до кнопки, которая должна добавлять новый ползунок при каждом нажатии.
Я пытался обновить с помощью window.Layout
, но это отклонено, потому что он использует существующие объекты. Я попробовал copy.deepcopy
, но это также не помогло.
Есть ли способ динамически добавить новую группу элементов управления (несколько раз), указанную путем выбора из списка параметров?
import PySimpleGUI as sg
s = {'range': (2,6), 'resolution': 0.2, 'default_value': 5,
'size': (20,15), 'orientation': 'horizontal',
'font': ('Helvetica', 8), 'enable_events': True}
layout = [[sg.Slider(**s, key='hi'), sg.Button('Add Slider')]]
window = sg.Window('wow!', layout=layout, background_color="gray",
size=(400, 200))
while True:
event, values = window.read()
if event is None:
break
print(event, values)
if event == 'Add Slider':
layout[0][0].Update(value=8.0 - values['hi'])
layout.append(sg.Slider(**s))
window.layout(layout)
Сообщение об ошибке:
# UserWarning: *** YOU ARE ATTEMPTING TO RESUSE AN ELEMENT IN YOUR LAYOUT!
Once placed in a layout, an element cannot be used in another layout. ***`