python中的事件属性详解

python中的事件的属性有:

#(1)widget 事件发生的部件(也就是地点)
#(2)x, y 事件的位置(相对于控件来说的相对坐标)
#(3)x_root, y_root 事件的位置(相对于屏幕的左上角的坐标绝对坐标)
#(4)keysym 按键事件的值(如按下f则这个事件的keysym就是f)
#(5)keycode 事件对象的数字码(如按下f的数字码是70,注意大写的F的数字码也是70,从这里可以使用keycode对大小写的F进行监听)
#(6)type 事件的一个类型(例如:键盘为2,鼠标点击为4,鼠标移动为6)
#(7)char 按钮事件的一个字符代码(例如f键盘为’f‘)
#(8)num 鼠标点击的事件数字码(左鼠标点击为1,中间鼠标为2,右边是鼠标为3)
#(9)width, height (新的部件的大小,在下面的例子中可能你看到的打印是??,因为没有新的部件的产生)

测试代码示例:

#!/usr/bin/env python

-- coding: utf-8 --

@Author : SundayCoder-俊勇

@File : eventthing.py

from Tkinter import *

root = Tk()

def key(event):
print “pressed at widget%s” % event.widget
print “pressed”, repr(event.char)
print “event.type is %s”%event.type
# 按下键盘上的f键的时候执行的事件
# (注意大写的F与小写的f他们的事件监听是不一样的,这里监听是小写的f)
print event.keycode
# 按下键盘上的f键的时候执行的事件
if event.keysym==‘f’:
print “hello world %s”%repr(event.char)
# 这里可以使用keycode对大小写的F进行监听
if event.keycode==70:
print “这里可以使用keycode对大小写的F进行监听”
def callback(event):
frame.focus_set()
print “num is %s”% event.num
print “width is %s, height is %s”%(event.width,event.height)
print “clicked at widget%s”% event.widget, event.x, event.y,“root_x,root_y”,event.x_root,event.y_root,event.type
def sayhello(event):
print “hello world”
frame = Frame(root, width=100, height=100)
frame.bind("", key)
#button-1是鼠标左键按下,以此类推
#B1-Motion是鼠标左键移动,以此类推
frame.bind("", callback)
frame.bind("", callback)
frame.bind("", callback)
frame.bind("", callback)
frame.bind("", callback)
frame.bind("", callback)

注意这里的事件不是键盘按下Enter而是鼠标进入到控件时候的事件,相当于java的获得焦点的事件监听

frame.bind("",sayhello)
frame.pack()

root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
测试部分的运行结果:
这里写图片描述

你可能感兴趣的:(python编程)