如何将参数传递给guizero事件处理程序

时间:2019-03-30 17:18:40

标签: python user-interface events parameters

我正在尝试使用guizero在Python中设置GUI,但是在将参数传递给按键处理程序时遇到了麻烦。如果我将函数调用留空,则默认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)

由于仅提供了2个必需参数中的1个,因此返回错误

更新:

我尝试将函数设置为接受两个参数,但未向其传递任何内容:

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.
------------------------------------------------------------

这是否意味着我将无法将任何参数传递给事件处理程序?

0 个答案:

没有答案