tkinter 22 事件绑定

References

简介

Tkinter应用程序大部分时间是花在事件循环当中的,也就是通过mainloop()进入的事件循环。

事件分类

基本语法

简单实例

用法

如上面所描述,基本语法widget.bind(event, handler), 其中,

接下来我们具体解析 修饰符(modifier)类型(type)Event对象 三部分内容

比如鼠标事件 和键盘事件

# <Button-1>:鼠标左击事件
# <Button-2>:鼠标中击事件
# <Button-3>:鼠标右击事件
# <Double-Button-1>:双击事件
# <Triple-Button-1>:三击事件

# <KeyPress-H>	用户点击 H 按键
# <Control-Shift-KeyPress-H>	用户同时点击 Ctrl + Shift + H

modifier

在事件序列中,modifier 部分是可选的,它通常用于描述组合键,例如 Ctrl + c,Shift + 鼠标左键点击。

modifier 含义
Alt 当按下 Alt 按键的时候
Any 1. 表示任何类型的按键被按下的时候 2. 例如 表示当用户按下任何按键时触发事件
Control 当按下 Ctrl 按键的时候
Double 1. 当后续两个事件被连续触发的时候 2. 例如 表示当用户双击鼠标左键时触发事件
Lock 当打开大写字母锁定键(CapsLock)的时候
Shift 当按下 Shift 按键的时候
Triple 跟 Double 类似,当后续三个事件被连续触发的时候

type

Event 对象

 Tkinter 去回调你定义的函数的时候,都会带着 Event 对象(作为参数)去调用,Event 对象以下这些属性你可以使用:

属性 含义
widget 产生该事件的组件
x, y 当前的鼠标位置坐标(相对于窗口左上角,像素为单位)
x_root, y_root 当前的鼠标位置坐标(相对于屏幕左上角,像素为单位)
char 按键对应的字符(键盘事件专属)
keysym 按键名,见下方 Key names(键盘事件专属)
keycode 按键码,见下方 Key names(键盘事件专属)
num 按钮数字(鼠标事件专属)
width, height 组件的新尺寸(Configure 事件专属)
type 该事件类型

Tkinter中按键对应的名称

当事件为 的时候,detail 可以通过设定具体的按键名(keysym)来筛选。例如 表示按下键盘上的大写字母 H 时候触发事件, 表示按下键盘上的 Tab 按键的时候触发事件。下表列举了键盘所有特殊按键的 keysym 和 keycode:

按键名(keysym) 按键码(keycode) 代表的按键
Alt_L 64 左边的 Alt 按键
Alt_R 113 右边的 Alt 按键
BackSpace 22 Backspace(退格)按键
Cancel 110 break 按键
Caps_Lock 66 CapsLock(大写字母锁定)按键
Control_L 37 左边的 Ctrl 按键
Control_R 109 右边的 Ctrl 按键
Delete 107 Delete 按键
Down 104 ↓ 按键
End 103 End 按键
Escape 9 Esc 按键
Execute 111 SysReq 按键
F1 67 F1 按键
F2 68 F2 按键
F3 69 F3 按键
F4 70 F4 按键
F5 71 F5 按键
F6 72 F6 按键
F7 73 F7 按键
F8 74 F8 按键
F9 75 F9 按键
F10 76 F10 按键
F11 77 F11 按键
F12 96 F12 按键
Home 97 Home 按键
Insert 106 Insert 按键
Left 100 ← 按键
Linefeed 54 Linefeed(Ctrl + J)
KP_0 90 小键盘数字 0
KP_1 87 小键盘数字 1
KP_2 88 小键盘数字 2
KP_3 89 小键盘数字 3
KP_4 83 小键盘数字 4
KP_5 84 小键盘数字 5
KP_6 85 小键盘数字 6
KP_7 79 小键盘数字 7
KP_8 80 小键盘数字 8
KP_9 81 小键盘数字 9
KP_Add 86 小键盘的 + 按键
KP_Begin 84 小键盘的中间按键(5)
KP_Decimal 91 小键盘的点按键(.)
KP_Delete 91 小键盘的删除键
KP_Divide 112 小键盘的 / 按键
KP_Down 88 小键盘的 ↓ 按键
KP_End 87 小键盘的 End 按键
KP_Enter 108 小键盘的 Enter 按键
KP_Home 79 小键盘的 Home 按键
KP_Insert 90 小键盘的 Insert 按键
KP_Left 83 小键盘的 ← 按键
KP_Multiply 63 小键盘的 * 按键
KP_Next 89 小键盘的 PageDown 按键
KP_Prior 81 小键盘的 PageUp 按键
KP_Right 85 小键盘的 → 按键
KP_Subtract 82 小键盘的 - 按键
KP_Up 80 小键盘的 ↑ 按键
Next 105 PageDown 按键
Num_Lock 77 NumLock(数字锁定)按键
Pause 110 Pause(暂停)按键
Print 111 PrintScrn(打印屏幕)按键
Prior 99 PageUp 按键
Return 36 Enter(回车)按键
Right 102 → 按键
Scroll_Lock 78 ScrollLock 按键
Shift_L 50 左边的 Shift 按键
Shift_R 62 右边的 Shift 按键
Tab 23 Tab(制表)按键
Up 98 ↑ 按键
Table of Contents