canvas.bind(event, handler) 如何将事件传递给事件处理程序?
How does canvas.bind(event, handler) pass event to the event handler?
在 Python 中向函数传递参数的主要方式是这样的:
def function(x):
# function definition
function(y)
也就是说,当我们调用 function
时,我们在括号内将一个值传递给它。
但是,我使用的是 tkinter,事件 canvas.bind()
方法是这样工作的:
def event_handler(event):
# function definition
canvas.bind('event-name', event_handler)
也就是说,当 canvas.bind
调用方法 event_handler
时,它似乎没有像人们期望的那样将参数 'event-name'
传递给 event_handler
(即通过 event_handler
=19=]).相反,它只是调用 event_handler
而不带任何参数。
那么 event-handler
如何接收它应该接收的事件参数,按照它的定义?
正如您所期望的那样。在绑定中,您给出了要调用的函数的 name。当事件触发时,处理事件的内部 tkinter 代码实际上会像您一样调用它:event_handler(event)
.
在 Python 中向函数传递参数的主要方式是这样的:
def function(x):
# function definition
function(y)
也就是说,当我们调用 function
时,我们在括号内将一个值传递给它。
但是,我使用的是 tkinter,事件 canvas.bind()
方法是这样工作的:
def event_handler(event):
# function definition
canvas.bind('event-name', event_handler)
也就是说,当 canvas.bind
调用方法 event_handler
时,它似乎没有像人们期望的那样将参数 'event-name'
传递给 event_handler
(即通过 event_handler
=19=]).相反,它只是调用 event_handler
而不带任何参数。
那么 event-handler
如何接收它应该接收的事件参数,按照它的定义?
正如您所期望的那样。在绑定中,您给出了要调用的函数的 name。当事件触发时,处理事件的内部 tkinter 代码实际上会像您一样调用它:event_handler(event)
.