繁体   English   中英

在 PySimpleGui 的输入字段中更新名称

[英]Update name in inputfield in PySimpleGui

我正在创建一个模板制作器,它工作正常。 我的主管要求我为她和其他几个人制作一个自动填充按钮。 如果她想制作一个模板,只需单击一个按钮,她的名字就会自动填写在输入字段中。

名称输入字段的代码如下所示:

[sg.Text("Name"), sg.InputText(key="NAME", do_not_clear=False)]

'Person-1' 模板的按钮如下所示:

[sg.Button('Template Person-1')]

while 循环如下所示:

 while True:
        event, values = spv_window.read()
        if event == sg.WIN_CLOSED or event == "Exit":
            break
        elif event == 'Template Person-1':
            spv_window['NAME'].Update(values['NAME'], 'Person-1')
        elif event == "Maak template":
            doc.render(values)
            output_path = Path(values["-IN-"]) / f"{values['NAME']}-{values['TOPIC']}.docx"
            doc.save(output_path)
            sg.popup("Template gegenereerd", f"zie: {output_path}")

有人可以向我解释发生了什么问题吗? 感谢您的时间!

用户设置以记住以前输入的值

使用“自动填充”按钮的另一种方法是使用最后输入的值填充值。 这将基本上为每个人定制 GUI,您需要为每个人制作特殊功能或保存一组特殊设置。

在此示例中,“名称”字段默认为最后输入的值。

import PySimpleGUI as sg

layout = [  [sg.Text('My Form')],
            [sg.Text('Name:'), sg.Input(default_text=sg.user_settings_get_entry('-name-', ''), key='-NAME-')],
            [sg.Button('Go'), sg.Button('Exit')]  ]

window = sg.Window('Window Title', layout)

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Exit':
        break
    if event == 'Go':
        # Save the Name entered and use it next time to auto-fill
        sg.user_settings_set_entry('-name-', values['-NAME-'])

window.close()

在此处输入图像描述

如果这是一个人不太可能更改的字段,那么每次执行程序时都会将其设置为相同的值。

另一种方法是制作模板。 如果你这样做了,那么 PySimpleGUI 用户设置 API 仍然可以方便地实现此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM