首页 > 解决方案 > 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()

标签: pythonpython-3.xpysimplegui

解决方案


感谢 MikefromPSG,使用目标参数有效:

layout.append([sg.FolderBrowse(target = text), sg.Text(key = text, size=(50, 1)), sg.Checkbox(element, key=check)])

推荐阅读