【问题标题】:pysimplegui keys not being assigned to elements correctlypysimplegui 键未正确分配给元素
【发布时间】:2021-02-21 12:35:19
【问题描述】:

我正在尝试使用 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()

【问题讨论】:

  • 您在阅读错误信息吗?
  • 如果您了解浏览按钮和其中的“目标”参数可能会有所帮助,以便您了解它们如何更改预期目标。 PSG GitHub 是询问这些 BTW 的好地方。
  • 感谢@MikefromPSG。 PSG 的新手,它真的是一个很棒的套餐。我一直在看食谱,但 github 似乎包含一些不错的信息,所以现在就看看 - 感谢您的建议。
  • GitHub 是所有操作所在。问题是最有经验的开发人员最关注的地方。演示程序是 PySimpleGUI 系统的重要组成部分。 PySimpleGUI.org 有最新的文档。 PySimpleGUI.com 带你到 github。很高兴你喜欢它

标签: python python-3.x pysimplegui


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-02-24
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多