系结及事件

[ Next: index参数 | Previous: Tk选项资料型别 | 内容 ]


系结及事件

来自元件命令的 bind 方法允许你可以注意特定的事件以及可以有一个回呼函式在事件型态发生时触发,bind方法的格式是:

def bind(self, sequence, func, add=''):

在这里:

sequence
是一个表示事件的目标种类的字串(查看bind线上文件及John Ousterhout书的p.201)。
func
是python函式,它有一个引数,并且在事件发生时被叫唤,事件的实体会当作引数传递(函式展开这种方式就是我们所知的回呼)。
add
是选择性的,不是 “” 就是”+”,传递一个空的字串表示这个系结会去取代跟这个事件有关的任何其他的系结,传递 “+”意味着这个函式是要增加到与这种事件型态有密切关系的函式列表。

举例:

def turnRed(self, event):

event.widget[“activeforeground”] = “red”
self.button.bind(“”, self.turnRed)

注意这个事件的元件栏位是如何在turnRen回呼中被存取,这个栏位含有元件来捕捉X事件,下面的表格列出你可以存取得其他事件栏位,以及他们在Tk中如何表示,这在参考Tk线上文件时很有用。

Tk	Tkinter 事件栏位 	    Tk  Tkinter 事件栏位
--	-------------------		--	-------------------
%f	focus				%A	char
%h	height				%E	send_event
%k	keycode				%K	keysym
%s	state				%N	keysym_num
%t	time				%T	type
%w	width				%W	widget
%x	x				%X	x_root
%y	y				%Y	y_root

Comments are closed.