Tkinter 事件与回调
来源:互联网 发布:vc电影数据库管理系统 编辑:程序博客网 时间:2024/06/05 19:00
代码访问GitHub: https://github.com/Roc-J/Python-turtle/tree/master/code16
- 命令绑定 将简单的组件绑定到function函数上
- 如果需要处理参数的话,使用lambda函数
- 事件绑定可以使用 widget.bind(事件,回调)方法将键盘和鼠标的事件响应绑定到窗口小组件上,并在发生某些事件时调用回调的事件绑定。
- 如何传递额外的参数到一个callback
- 怎样将事件绑定到整个应用程序或特定类的窗口小部件(通过使用bind_all()和bind_class())
给程序添加生命
小部件功能响应函数 包括按下按钮,鼠标点击等事件,这需要将回调关联到特定事件。
命令绑定
最简单方式来增加函数方法到一个按钮称作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 argumentButton(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.ymyframe = 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目录和输出一句话。
事件模式
- 鼠标左击
- 鼠标按钮中建点击
- 鼠标右击
- 键盘按键B
- 键盘按下Alt+Ctrl+Delete
事件 属性说明
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 binding
application-level绑定的语法是
w.bind_all(event,callback)
典型的使用如下:
root.bind_all(‘’,show_help)
class-level binding
class level绑定的语法是
w.bind_class(className,event,callback)
典型的使用如下:
myentry.bind_class(‘Entry’,’’,paste)
- Tkinter 事件与回调
- Tkinter -- 事件与绑定
- Tkinter 鼠标键盘事件
- Python Tkinter 事件和映射
- python tkinter教程-事件绑定
- python3 tkinter如何绑定事件
- 小白学tkinter(事件之(事件绑定))
- 小白学tkinter(事件之(事件序列))
- Tkinter事件绑定,参数如何传递
- tkinter绑定鼠标滚轮滚动事件
- [Tkinter 教程15] event 事件绑定
- 小白学tkinter(事件之(Event对象))
- tkinter: 事件 & 绑定 (Events and Bindings)
- Tkinter
- tkinter
- tkinter
- Tkinter
- tkinter
- JAVA LIST 简单分页 集成EXT4 grid表头动态返回
- vijos 1237_隐形的翅膀_离散
- SSM三大框架的整合
- android 人脸检测&&识别
- EXCEL VBA常用代码集
- Tkinter 事件与回调
- 关于贵和源(杜树杰)送开光佛珠欺诈粉丝一事重要说明
- mysql分表与分区表
- win10写的程序在win7下面崩溃的问题 CLR20r3 MissingMethodException
- 高亮显示
- 关于苹果审核IPv6被拒 的问题 完美解决
- BASS 电池电压修正
- 事物的隔离级别
- maven 项目出现感叹号