python - pysimplegui 键未正确分配给元素
问题描述
我正在尝试使用 pysimplegui 动态分配键。一个简单的示例是在选择文件夹时更新文本字段。
当布局在每一行中包含两个元素时,文本字段会正确更新。但是,添加第三个元素会导致文本框不更新。
import PySimpleGUI as sg
layout = []
elements = ["one", "two", "three"]
for element in elements:
text = f"text_{element}"
folder = f"folder_{element}"
check = f"check_{element}"
layout.append([sg.FolderBrowse(key = folder), sg.Text(key = text, size=(50, 1))])
#layout.append([sg.FolderBrowse(key = folder), sg.Text(key = text, size=(50, 1)), sg.Checkbox(element, key=check)])
#layout.append([sg.FolderBrowse(key = folder), sg.Text(key = text, size=(50, 1)), sg.Text(element, key=check)])
layout.append([sg.Button('Show'), sg.Cancel()])
window = sg.Window("GUI", layout)
while(True):
event, values = window.read()
if event in (None, 'Cancel'):
break
print(values)
for element in elements:
text = f"text_{element}"
folder = f"folder_{element}"
values[text] = values[folder]
window.close()
解决方案
感谢 MikefromPSG,使用目标参数有效:
layout.append([sg.FolderBrowse(target = text), sg.Text(key = text, size=(50, 1)), sg.Checkbox(element, key=check)])
推荐阅读
- android - 如何从 Edittext 获取 SpannableString
- python - 在 Pandas 中捕获列的状态更改信息
- javascript - 下拉重置角度 ng-select 时删除无效状态
- regex - IDLE 中的正则表达式语法错误,但在我的 Python 程序中却没有?
- javascript - responsiveslides 仅使用 https 显示我的第一张图片,使用 http 可以正常工作
- python - 'CountVectorizer' 对象没有属性 'toarray'
- javascript - 从 json 获取数据并在拆分后将其发送到图表
- java - 私有方法上的 Javax 验证不会被触发
- angularjs - 使用 angularjs 和 mqql 将数据拉取到模态
- splunk - 在 splunk 中计数和求和