如何将接口绑定到 PySimpleGUI 中的函数

How to bind an interface to functions in PySimpleGUI

我有下一个文件: https://github.com/Greenboyisyourdream/PasswordGenerator

如何让“生成”按钮执行 app.py

中第 12 行的功能

(app.py中第12行的函数):

elif button == "Generate!":
    screen.format()
    screen = str(*[random.choice(list(symbols)) for _ in range(lenght)])
    window.FindElement("output").Update(screen)

在layout中,你把gui.InputText的key定义为'output',同时你也把gui.Button的key定义为'output'.

对同一 window 中的所有元素使用唯一键。

这里gui.Button的key会自动改成'output0'.

layout = [
...
    [gui.InputText(screen, size=(40, 1), font=("Times New Roman", 10), background_color="white", text_color="black", key="output"),
     gui.Button(button_text="Generate!", size=(10, 1), button_color="red", key="output")]

]

如果指定选项keyk,则单击按钮时生成的事件是gui.Button的键,而不是元素的button_text。

获得正确事件 'Generated!' 的最简单解决方案是从 gui.Button 中删除选项 key='output',或在 gui.Button 中设置选项 key='Generated!'

layout = [
...
    [gui.InputText(screen, size=(40, 1), font=("Times New Roman", 10), background_color="white", text_color="black", key="output"),
     gui.Button(button_text="Generate!", size=(10, 1), button_color="red")]

]