如何在 PySimpleGUI 中按 Enter 到 InputText 时引发事件

Tir*_*rel 2 python tkinter pysimplegui

我是 Python 和 PySimpleGUI 的新手,我不知道如何强制我的应用程序处理事件<Enter>键;这是我的代码:

    # Text field
    sg.InputText(
        key=key,
        default_text='',
        enable_events=True,
    ),


    ...


    window = self.graphic_interface.window

    while self.is_running:
        self.event, self.values = window.read(timeout=0)

    ...


    if event in INSERT_SN_KEYS:
        key = event

        if values[key]is not None:
            # Accept only numbers
            if values[key][-1] not in '0123456789':
                window[key].update(values[key][:-1])
Run Code Online (Sandbox Code Playgroud)

我的代码可以处理用户按下的任何键,除了<Enter>; 我还没有找到任何类似于 Button 类中使用的“bind_return_key=True”的 InputText 参数。

我该怎么做?

Jas*_*ang 8

bind("<Return>", key_modifier)使用 after window Finalized的方法,当该元素获得焦点并按下 Enter 键时,sg.Input它将生成一个事件。sg.Input().Key + key_modifier

import PySimpleGUI as sg

sg.theme("DarkBlue3")
sg.set_options(font=("Courier New", 16))

layout = [
    [sg.Input("Enter to generate an event",     key='Input1')],
    [sg.Input("Enter not to generate an event", key='Input2')],
]
window = sg.Window('Title', layout, finalize=True)
window['Input1'].bind("<Return>", "_Enter")

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event == "Input1" + "_Enter":
        print(event)

window.close()
Run Code Online (Sandbox Code Playgroud)