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键。