widget命令中的bind方法允许您监视某些事件,并在发生该事件类型时触发回调函数。绑定方法的形式为:
def bind(self, sequence, func, add=''):
其中:
sequence
是表示事件的目标类型的字符串。(见绑定手册页和201页约翰Ousterhout的书)。
func
是一个Python函数,采用一个参数,在事件发生时调用。事件实例将作为参数传递。(以这种方式部署的函数通常称为回调。)
add
是可选的,“” 或 “+”。传递空字符串表示此绑定用于替换与此事件关联的任何其他绑定。传递 “+” 表示将此函数添加到绑定到此事件类型的函数列表中。
例如:
def turn_red(self, event):
event.widget["activeforeground"] = "red"
self.button.bind("<Enter>", self.turn_red)
请注意如何在turn_red() 回调中访问事件的窗口小部件字段。此字段包含捕获X事件的小部件。下表列出了您可以访问的其他事件字段,以及它们在Tk中的表示方式,这在引用Tk手册页时很有用。
Tk | Tkinter Event Field | Tk | Tkinter Event Field |
---|---|---|---|
%f | 焦点 | %A | char |
%h | height | %E | send_event |
%k | keycode | %K | keysym |
%s | 状况 | %N | keysym_num |
%t | time | %T | 类型 |
%w | 宽度 | %W | widget |
%x | x | %X | x_root |
%y | y | %Y | y_root |