Как передать параметры в обработчик событий guizero - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь настроить графический интерфейс в Python с помощью guizero, но у меня возникают проблемы при передаче параметров в мой обработчик нажатия клавиш.Если я оставлю свой вызов функции пустым, по умолчанию параметр event_data заполняется информацией о событии.Если я попытаюсь передать свой собственный параметр, он не пропустит event_data автоматически.У меня возникают проблемы с выяснением, как передать свой собственный параметр, сохраняя при этом переменную event_data по умолчанию.Кто-нибудь знает, как установить это, чтобы я мог передать свой собственный параметр в мой обработчик событий, сохраняя при этом event_data?

Вот документация о событии для guizero.Они не проходят передачу параметров, но это может помочь: https://lawsie.github.io/guizero/events/

Я пытался передать значения по умолчанию или не указывать значения или саму event_data, но я не смог заставить что-либо работать при заполнениив параметре.

Это работает:

def keypress(data):
  if data.key == "\u001B":
    toggle_fullscreen()

app.when_key_pressed = keypress

Но когда я пытаюсь передать свой собственный параметр:

def keypress(data, fullscreen):
  if data.key == "\u001B":
    toggle_fullscreen(fullscreen)

app.when_key_pressed = keypress(fullscreen)

Возвращает ошибку, поскольку только 1 аргументпоставлено из 2 обязательных

ОБНОВЛЕНИЕ:

Я попытался настроить функцию для приема обоих параметров и ничего не передал ей:

def keypress(data, fullscreen):
  if data.key == "\u001B":
    toggle_fullscreen()

app.when_key_pressed = keypress

И я получил ошибку:

------------------------------------------------------------
*** GUIZERO WARNING ***
An event callback function must accept either 0 or 1 arguments.
The current callback has 2 arguments.
------------------------------------------------------------

Значит ли это, что я не смогу передать какие-либо параметры своим обработчикам событий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...