类型符

    事件类型有很多,下面列出较常用的类型符:

    Activate

    构件从无效状态变成激活状态。

    Button

    用户点击鼠标按键。具体按键用细节符描述。

    ButtonRelease

    用户释放鼠标按键。在多数情况下用这个事件可能比 Button 更好,因为如果用户无意 点击了鼠标,可以将鼠标移开构件再释放,这样就不会触发该构件的点击事件。

    Configure

    用户改变了构件(主要是窗口)大小。

    Deactivate

    构件从激活状态变成无效状态。

    Destroy

    构件被撤销。

    Enter

    用户将鼠标指针移入构件的可见部分。

    FocusIn

    构件获得输入焦点。通过 Tab 键或 focus_set()方法可使构件获得焦点。

    FocusOut

    输入焦点从构件移出。

    KeyPress

    用户按下键盘上的某个键。可简写为 Key。具体按键用细节符描述。

    KeyRelease

    Leave

    用户将鼠标指针移开构件。

    Motion

    用户移动鼠标指针。

    修饰符

    下面是常用的修饰符:

    Alt

    用户按下并保持 alt 键。

    Control

    用户按下并保持 control 键。

    Double

    在短时间内连续发生两次事件。例如表示快速双击鼠标左键。

    Shift

    用户按下并保持 shift 键。

    Triple

    在短时间内连续发生三次事件。

    细节符

    鼠标事件的细节符用于描述具体绑定的是哪一个鼠标键,1、2、3 分别表示左、中、右 键。

    键盘事件的细节符用于描述具体绑定的是哪一个键。对键的命名有多种方式,它们分别对应于 Event 对象中的如下几个属性:

    char

    如果按下 ASCII 字符键,此属性即是该字符;如果按下特殊键,此属性为空串。

    keycode

    键码,即所按键的编码。注意,键码未反映修饰符的情况,故无法区分该键上的不同字 符,即它不是键上字符的编码,故 a 和 A 具有相同的键码。

    键符。如果按下普通 ASCII 字符键,键符即是该字符;如果按下特殊键,此属性设置 为该键的名称(是个字符串)。

    keysym_num

    键符码,是等价于 keysym 的一个数值编码。对普通单字符键来说,就是 ASCII 码。与 键码不同的是,键符码反映了修饰符的情况,因此 a 和 A 具有不同的键符码。

    除了可打印字符,常见的特殊按键的键符包括:Alt_L,Alt_R,BackSpace,Cancel, Caps_Lock,Control_L,Control_R,Delete,Down,End,Escape,F1~F12,Home,Insert, Left,KP_0~KP_9,Next,Num_Lock,Pause,Print,Prior,Return,Right,Scroll_Lock, Shift_L,Shift_R,Tab,Up 等等。

    常用事件

    根据以上介绍的事件描述符的组成,可以构造如下常用事件:

    • :左键点击
    • :中键点击
    • :右键点击
    • :左键双击
    • :左键三击
    • :左键按下并移动,每移一点都触发事件
    • :右键按下并移动,每移一点都触发事件
    • :左键按下并释放
    • :中键按下并释放
    • :右键按下并释放
    • :进入按钮区域
    • :离开按钮区域
    • :键盘焦点从本构件移出 a:用户按下小写字母“a” 可打印字符(字母、数字和标点符号)都类似字母 a 这样使用。只有两个例外:空格键 对应的事件,小于号对应的事件是
    • :同时按下 Shift 键和↑键。
    • 类似的还有利用 Shift、Alt 和 Ctrl 构成的各种组合键,例如
    • 等等。
    • :按下任意键。
    • 具体按下的键值由传递给回调函数的事件对象的 char 属性提供。如果是特殊键,char 属性值为空串。注意,如果输入上档键(如@#$%^&*之类),当按下 Shift 键时就触发了 事件,再按下上档键又会触发

    事件对象

    每个事件都导致系统创建一个 Event 对象,该对象将被传递给事件处理程序,从而事件 处理函数能够从该对象的属性获得有关事件的各种信息。事件对象的属性包括:

    x,y

    鼠标点击位置坐标(相对于构件左上角),单位是像素。

    x_root,y_root

    鼠标点击位置坐标(相对于屏幕左上角),单位是像素。

    num char

    鼠标键编号,1、2、3 分别表示左、中、右键。

    如果按下 ASCII 字符键,此属性即是该字符;如果按下特殊键,此属性为空串。

    keycode

    所按键的编码。注意,此编码无法区分该键上的不同字符,即它不是键上字符的编码。

    keysym

    如果按下普通 ASCII 字符键,此属性即是该字符;如果按下特殊键,此属性设置为该 键的名称(是个字符串)。

    keysym_num:这是 keysym 的数值表示。对普通单字符键来说,就是 ASCII 码。

    width,height

    构件改变大小后的新尺寸(宽度和高度),单位是像素。仅适用于事件。

    widget