11.2.1 tkinter事件类型

11.2.1 tkinter事件类型

事件就是触发的一些动作,如单击菜单、单击鼠标等。根据不同的动作,想要让程序执行不同的功能,就需要对事件进行处理,也就是调用不同的函数来完成相应的功能。

tkinter中的事件都是用字符串来描述的,基本格式是:

其中modifier和detail可以提供一些附加信息,modifier为组合键的定义,例如,同时按下Ctrl键;detail用于具体信息,如按下键盘中B键;type指的是事件的类型。type为通用类型,例如键盘按键(KeyPress)。

type指的是事件的类型。常见的事件类型如表11-5所示。

表11-5 常见的事件类型

常见的<modifier-type-detail>格式组合的常用事件类型如下。

(1)鼠标单击事件

<Button-1>:单击鼠标左键。

<Button-2>:单击鼠标中间键(如果有)。

<Button-3>:单击鼠标右键。

<Button-4>:向上滚动滑轮。

<Button-5>:向下滚动滑轮。

(2)鼠标双击事件

<Double-Button-1>:鼠标左键双击。

<Double-Button-2>:鼠标中键双击。

<Double-Button-3>.:鼠标右键双击。

(3)鼠标释放事件

<ButtonRelease-1>:鼠标左键释放。

<ButtonRelease-2>:鼠标中键释放。

<ButtonRelease-3>:鼠标右键释放。

(4)鼠标按下并移动事件(即拖动)

<B1-Motion>:左键拖动。

<B2-Motion>:中键拖动。

<B3-Motion>:右键拖动。

(5)鼠标其他操作<Enter>:鼠标进入控件(放到控件上面)

<FocusIn>:控件获得焦点。

<Leave>:鼠标移出控件。

<FocusOut>:控件失去焦点。

(6)键盘按下事件

<Key>:键盘按下,事件Event中的keycode、char都可以获取按下的键值。

<Return>:键位绑定,回车键,其他还有<BackSpace>、<Escape>、<Left>、<Up>、<Right>、<Down>等。

(7)控件属性改变事件<Configure>

控件大小改变,新的控件大小会存储在事件Event对象的width和height属性中,部分平台上该事件也代表控件位置改变。

(8)组合事件

例如<Control-Shift-Alt-KeyPress-A>,表示同时按下Ctrl+Shift+Alt+A 4个键;<KeyPress-A>表示按下键盘中的A键。