赞
踩
小部件功能响应函数 包括按下按钮,鼠标点击等事件,这需要将回调关联到特定事件。
最简单方式来增加函数方法到一个按钮称作command binding从而回调函数以command=some_callback形式提到窗口小部件
举一个简单的例子来进行简单的实例
def my_callback():
# do something
Button(root,text="Click",command=my_callback())
如果回调需要一些参数,我们可以使用lambda函数:
def my_callback(somearg):
# do something with argument
Button(root,text="Click",command=lambda:my_callback('some argument'))
Tkinter提供一种称为bind()的事件绑定机制的替代形式来处理不同的事件,绑定事件的标准语法如下:
widget.bind(event,handler)
下面举一个例子来详细的说明
from Tkinter import *
root = Tk()
Label(root,text='Click at different \n locations in the frame below').pack()
def callback(event):
print dir(event)
print "you clicked at",event.x,event.y
myframe = Frame(root,bg='khaki',width=130,height=80)
myframe.bind("<Button-1>",callback)
myframe.pack()
root.mainloop()
程序说明:
(1)程序生成一个窗口root,pack()一个标签Label
(2)生成一个Frame放置在root上,并进行属性的设置,并将该frame绑定一个函数callback
(3)callback函数将显示event下的dir目录和输出一句话。
事件 属性说明
char 从键盘输入的字符,用于键事件
keycode 从键盘为键事件输入的键的键代码(即Unicode)
keysym 从键盘输入的键的键符号(即字符),用于键事件。
num 按钮编号(1,2,3)表示单击了哪个鼠标按钮。
widge 触发此事件的widget对象
x and y 窗口小部件中当前的鼠标位置(以像素为单位)
x__root and y__root 当前鼠标相对于屏幕上左上角的位置,以像素为单位
widget.bind(“”,callback) # 将widget组件绑定到鼠标左击
widget.bind(“”,callback) # 绑定到鼠标右击
widget.bind(“”,callback) # 绑定到Return(Enter)Key
widget.bind(“”,callback) # 绑定Focus
widget.bind(“”,callback) # 绑定键盘A键
widget.bind(“”,callback) #绑定CapsLockkeysym
widget.bind(“”,callback) # 绑定widget到F1
widget.bind(“”,callback) #绑定keypad 数字5
widget.bind(“Motion”,callback) #bind to motion over widget
widget.bind(“”,callback) #绑定到任意键
application-level绑定的语法是
w.bind_all(event,callback)
典型的使用如下:
root.bind_all(‘’,show_help)
class level绑定的语法是
w.bind_class(className,event,callback)
典型的使用如下:
myentry.bind_class(‘Entry’,’’,paste)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。