Как правильно к переменной задать функцию из PySimpleGUI?

Для задания функции к переменной в PySimpleGUI, вам нужно использовать ключевое слово lambda или просто название функции без скобок.

Вот примеры для обоих случаев:

1. Использование ключевого слова lambda:

import PySimpleGUI as sg

def my_function():
    print("Функция была вызвана")

layout = [
    [sg.Button("Кнопка", key="-BUTTON-")]
]

window = sg.Window("Моя программа", layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == "-BUTTON-":
        my_function()  # Вызываем функцию при нажатии кнопки

window.close()

2. Использование названия функции без скобок:

import PySimpleGUI as sg

def my_function():
    print("Функция была вызвана")

layout = [
    [sg.Button("Кнопка", key="-BUTTON-", button_color=("white", "#333333"))]
]

window = sg.Window("Моя программа", layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == "-BUTTON-":
        my_function  # Заметьте отсутствие скобок здесь

window.close()

Обратите внимание, что в обоих случаях вместо print("Функция была вызвана") вы можете поместить любой код, который должен выполняться при вызове функции.

Надеюсь, это помогло вам разобраться и удачи в работе с PySimpleGUI! Если у вас есть еще вопросы, не стесняйтесь задавать.