python3 tkinter 事件应用

python3 tkinter 事件

事件序列

  tkinter 使用事件序列来让用户自定义事件。用bind()方法将事件序列与自定义的事件处理方法绑定。事件序列是以字符串的形式表示,可一个或多个相关联事件组合。组合事件需要同时满足所有组合事件时才会触发已绑定的处理方法。

 

事件语法

  事件序列

  使用字符串表示:

    "<修饰-类型-详细描述>"

  1. 所有事件描述序列字符串包括在尖括号 "<>" 中;
  2. 修饰 部分为可选内容,一般在组合事件中用于多功能按键组合的描述。如:Ctrl + Shift + V;
  3. 类型 部分用于描述一般的事件对象类型,如键盘按键或鼠标动作等;
  4. 详细描述 部分为可选内容,一般用于描述事件具体单元对象,如KeyPress-A,表示按键盘A键

 

  附:修饰符

修饰符 意义
Alt 按下Alt键
Any 按下任意键。如<Any-KeyPress>,表示按下任意键事件
Control 按下Ctrl键
Double 被修饰的事件类型连续两次触发。如<Double-Button-1>,表示双击鼠标左键
Lock 大写字母锁定键
Shift 按下Shift
Triple 被修饰的事件类型连续三次触发

  

  响应函数

  响应函数用用户定义,然后使用bind()方法将其与事件绑定;

  事件被触发后,将调用响应函数,并将Event对象当做参数传递给函数。

  附1:Event对象常用属性

属性 意义描述
widget 产生事件的组件
x,y 以窗口左上角为原点,鼠标指针的坐标。以像素为单位
x_root,y_root 以屏幕左上角为原点,鼠标指针的坐标,以像素为单位
char 键盘按键字符
keysym 键盘按键名
keycode 键盘按键码
num 鼠标按钮数字
width,height 组件尺寸改变后的宽和高
type 事件类型

  附2:键盘事件属性参数值整理

按键名(keysym) 按键码(keycode) 按键描述
Alt_L 64 左Alt
Alt_R 113 右Alt
BackSpace 22 退格
Cancel 110 break键
Caps_Lock 66 大写字母锁定
Control_L 37 左Ctrl
Control_R 109 右Ctrl
Shift_L 50 左Shift
Shift_R 62 右Shift
Insert 106 插入键
Delete 107 删除键
Left 100 左方向键
Right 102 右方向键
Up 98 上方向键
Down 104 下方向键
Home 97 Home键
End 103 End键
Escape 9 Esc键
Execute 111 Sysreq键
F1~F11 67~77 F1键到F11键(一一对应)
F12 96 F12键
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_Subtract 82 数字键盘 -
KP_Add 86 数字键盘 +
KP_Begin 84 数字键盘中间键(5) 
KP_Decimal 91 数字键盘点键
KP_Delete 91 数字键盘删除
KP_Divide 112 数字键盘反斜杠 /
KP_Up 80 数字键盘上方向
KP_Left 83 数字键盘左方向
KP_Right 85 数字键盘右方向
KP_Down 88 数字键盘下方向键
KP_End 87 数字键盘End键
KP_Enter 108 数字键盘回车
KP_Home 79 数字键盘Home
KP_Insert 90 数字键盘插入
KP_Multiply 63 数字键盘星号 *
KP_Next 89 数字键盘PageDown
KP_Prior 81 数字键盘PageUp
Next 105 PageDown键
Num_Lock 77 数字键盘锁定
Pause 110 Pause暂停
Print 111 屏幕打印
Prior 99 PageUp键
Return 36 回车
Scroll_Lock 78 ScrollLock键
Tab 23 制表按键

 

事件类型整理

事件类型 意义描述
Activate

组件状态变化事件,未激活变为激活时触发;

与 Deactivate 相对

Button

鼠标按键点击事件;

由描述部分指定具体按键:

  <Button-1> 鼠标左键

  <Button-2> 鼠标中键

  <Button-3> 鼠标右键

  <Button-4> 滚轮上(linux)

  <Button-5> 滚轮下(linux)

ButtonRelease

释放鼠标按键事件。强调释放动作

Configure 组件尺寸改变事件
Deactivate

组件状态改变事件。激活变为未激活;

与 Activate 相对

Destroy 组件被销毁触发事件
Enter

鼠标指针进入组件区域事件;

与 Leave 相对

Expose 窗口或组件的部分被显示时触发事件,比如某部分被置顶
FocusIn 获得焦点事件。如果组件的takefocus属性为True,则用户可通过Tab按键切换组件焦点。也可用focus_set()方法设置组件焦点
FocusOut 失去焦点事件
KeyPress

键盘按键事件。强调按下动作;

由描述部分指定具体按键,如 <KeyPress-A>、<KeyPress-B>;

可简写为Key

KeyRelease 释放键盘按键事件。强调释放动作
Leave

鼠标指针离开组件区域事件;

与 Enter 相对

Map 组件被映射时触发事件。指在程序中,该组件被调用(组件显示、隐藏等)。如调用grid()方法
Motion 鼠标在组件区域内移动事件
MouseWheel 鼠标滚轮事件。该事件序列支持Windows和Mac 等同于Linux下的Button-4/5
Unmap

组件被取消映射事件;

与Map相对

Visibility 应用程序至少有一部分被置顶(即被显示出来)事件
posted @ 2018-07-07 21:29  乐7  阅读(265)  评论(0)    收藏  举报