canvas.bind(event,handler)如何将事件传递给事件处理程序?

时间:2016-07-18 02:51:56

标签: python canvas tkinter tkinter-canvas

在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(即通过{{1} }})。相反,它只是在没有任何参数的情况下调用event_handler('event-name')

那么event_handler如何根据其定义接收它应该接收的事件参数?

1 个答案:

答案 0 :(得分:1)

它就像你期望的那样。在绑定中,您将提供要调用的函数的名称。触发事件时,处理事件的内部tkinter代码实际上就像调用它一样调用它:event_handler(event)