Как правильно к переменной задать функцию из 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()
  1. Использование названия функции без скобок:
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! Если у вас есть еще вопросы, не стесняйтесь задавать.