■FreeSimpleGUIでボタンではなくエンターキーで入力完了して次の処理に移行したい
参考出典 https://qiita.com/GOU_KUN/questions/cf940c9a85eba56cb29d
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
・windowにてreturn_keyboard_events=True
 イベント判断でevent == "OK" or event == '\r':
 とすればよいらしいが・・・
ーーーーーーーーーーーーーーーーーーーーーーーーー
出典にあるサンプルコード・・・このままでは狙い通りには動かない
ーーーーーーーーーーーーーーーーーーーーーーーーー
import PySimpleGUI as sg
sg.theme('DarkAmber')
layout = [  [sg.Text('何か入力してください')],
            [sg.InputText()],
            [sg.Button('OK'), sg.Button('キャンセル')] ]
window = sg.Window('エンターキーを押してOKをクリックさせたい', layout, alpha_channel=0.95, no_titlebar=True, grab_anywhere=True,return_keyboard_events=True)
#alpha_channel 半透明ウィンドウの透明率
#no_titlebar タスクバーにアイコン非表示
#grab_anywhere windowをドラッグ移動

while True:
    event, values = window.read()
    # print(f"event='{event}', code={ord(event[0])}, values={values}\n")
    if event == sg.WIN_CLOSED or event == 'キャンセル' or event == 'Escape:27':
        break
    if event == "OK" or event == '\r':
        print(f"values={values}")
window.close()

ーーーーーーーーーーーーーーーーーーーーーーーーー
実際に正しく動作したコード(Windows11の場合
注意!このままコピペするとTABがスペースに変わることがある
ーーーーーーーーーーーーーーーーーーーーーーーーー

import FreeSimpleGUI as sg

sg.theme('DarkAmber')

layout = [  [sg.Text('何か入力してください')],

            [sg.InputText(key='Input')],

            #[sg.InputText(key='Input', enable_events=True)],

            [sg.Button('OK'), sg.Button('キャンセル')]

            ]

window = sg.Window('エンターキーを押してOKをクリックさせたい', layout,return_keyboard_events=True)

#window = sg.Window('エンターキーを押してOKをクリックさせたい', layout)

 

while True:

    event, values = window.read()

    code_event=ord(event[0])

    value_input=values["Input"]

    print(event,code_event,value_input)

    #print(f"event='{event}', code={ord(event[0])}, values={values}\n")

    if event == sg.WIN_CLOSED or event == 'キャンセル' or code_event == 69: #ESCのcodeはWindows/macOSともに69

    #if event == sg.WIN_CLOSED or event == 'キャンセル' or event == 'Escape:27':

        break

    if event == "OK" or code_event == 13: #Enterのcodeはwindowsでは13、macOSでは82

    #if event == "OK" or event == '\r' or event == 'Input':

        #print(f"event='{event}', code={ord(event[0])}, values={values}\n")

        #print(f"values={values}")

        break

 

window.close()


ーーーーーーーーーーーーーーーーーーーーーーーーー
●出力結果例(macOS Taho26.5.1での結果
ーーーーーーーーーーーーーーーーーーーーーーーーー
a 97 a
b 98 ab
1 49 ab1
Return:603979789 82 ab1
ab1
Escape:889192475 69 ab1

sg.Inputにもイベントを発生させ、文字入力される都度にコードを判別した。
このとき、
・a、b、1などは文字列として辞書のvalueに加わる。
・RETURN(Enter)キーのコードは13(Windows11)、82(macOS)
・escapeキーのコードは69(Win/macとも同じ)

・BackSpaceのコードは66(Windows11)

・Tabのコードは9(Windows11)
↑これでEnterキーが押されるまでの文字列を値として取得して次の処理へ移行、escapeが押されたら入力キャンセルという動作ができる。

以上