python - 添加另一个滑块的 PySimpleGUI 按钮
问题描述
我需要向使用 PySimpleGUI 构建的控制面板添加“添加新控件组”功能。每次选择哪种类型的控件组,因此无法像此答案中描述的那样预定义如何基于 PySimple GUI 中的按钮单击显示不同的布局?(持续窗口循环)
为简洁起见,我将这里的问题一直抽象为一个按钮,每次按下它时都应该添加另一个滑块。
我尝试使用更新,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. ***`
解决方案
推荐阅读
- android - Kotlin:异步访问函数
- c# - ASP.Net Core 3.0 web应用和Vue超时异常 Visual Studio 2019 v16.4
- javascript - 如何使用复选框制作表单在选中时禁用其他输入但启用下一个输入de类型文本
- c# - C# 模板类,其中 T : ITemplate
- sql - 在 SQL Server 中查找重复项和几乎重复的条目
- angular - 未定义skipSelector
- reactjs - 将已知形状但大小未知的数组传递给组件?
- javascript - react js中状态改变后如何重新渲染?
- json - 访问 json 文件列表中的多个字典
- javascript - 如何停止正在运行的倒数计时器?