在GUI编程中,事件是用户对程序直接或间接的操作所产生的,如被单击的按钮、窗口移动、按下键盘等。为了让用户与计算机实现交互,则需要对这些事件绑定到相应的程序进行处理。
事件格式
事件的格式必须是 <modifier-type-detail>
- <> 事件名必须包含在尖括号内
- modifier 可选。事件类型的修饰符。例如: 双击击鼠标左键 <Double-Button-1>
- type 必须。事件类型。
- detail 可选。用于描述具体的某个键。例如: 单击鼠标左键 <Button-1>
事件绑定
可以在tkinter对象上或者组件对象上,执行bind()方法,指定需要处理的事件和处理程序,格式如下:
|
|
事件绑定示例
|
|
事件类型
事件主要分为三类,鼠标事件、按键事件、其他窗口和组件事件。
键盘事件
在程序中捕获按键事件。
修饰符 | 说明 |
---|---|
Control | 事件发生时需按下 Control 键 例: Control-KeyPress-C 表示同时按下 Control + C 我们常用的复制键 |
Shift | 事件发生时需按下 Shift 键 |
Alt | 事件发生时需按下 Alt 键 |
Control-Alt | 组合键 Control-Alt-KeyPress-A 表示同时按下 Ctrl + Shift + A |
Lock | 事件发生时须处于大小锁定状态 |
Double | 事件连续发生两次 |
Triple | 事件连续发生三次 |
键盘事件
事件类型 | 说明 |
---|---|
Key | 所有按键点击时触发 |
KeyPress-字母、KeyPress-数字 | 点击指定字母和数字时触发 |
Return | 点击回车键时触发 |
Up、Down、Left、Right | 点击上、下、左、右方向键时触发 |
“A”、“a”、“2” | 点击字母和数字时触发,大小写很重要,A不等于a |
space | 特殊键,点击空格键时触发 |
less | 特殊键,点击小于键时触发 |
“abc” | 按照顺序点击相应按键后触发 |
鼠标事件
在我们的程序中捕获鼠标事件,以下事件均可以加上数字,例如:<Button-1> 表示左键被点击。
- 1 左键
- 2 鼠标中键滚轮
- 3 右键
事件类型 | 说明 |
---|---|
Motion | 鼠标移动时触发 |
Button | 元素被点击触发 |
Double-Button | 元素被双击时触发 |
ButtonPress | 鼠标点击时触发 |
ButtonRelease | 释放对该元素点击时触发 |
B1-Motion、B2-Motion、B3-Motion | 鼠标左键、中键、右键点击后拖动时触发 |
Enter | 鼠标悬浮在元素上时触发 |
Leave | 鼠标从元素上离开时触发 |
其他事件
在窗口或组件级别发生一些事件时,如移动,调整大小和关闭时触发。
事件类型 | 说明 |
---|---|
Configure | 窗口或组件移动、调整大小时触发 |
Destroy | 窗口或组件销毁时触发 |
窗口销毁事件 WM_DELETE_WINDOW,使用protocol()方法处理,销毁前在回调中做一些事情。
|
|