事件绑定
对于每个组件来说,可以通过bind()方法将函数或方法绑定到具体的事件上。当被触发的事件满足该组件绑定的事件时,Tkinter就会带着事件描述去调用handler()方法
实例1:捕获单击鼠标位置
1 from tkinter import* 2 3 root = Tk() 4 5 def callback(event): 6 print("点击位置:",event.x,event.y) 7 8 frame = Frame(root,width=200,height=200) 9 #Button表示鼠标点击事件 10 #1代表左键 2代表中间滚轮点击 3代表右键 11 frame.bind("<Button-1>",callback)#按键按下时,调用callback方法 12 frame.pack() 13 14 mainloop()
实例2:捕获键盘事件
1 #捕获单击鼠标的位置 2 from tkinter import* 3 4 root = Tk() 5 6 def callback(event): 7 print("敲击位置:",repr(event.char))#打印当前按下按键的字符 8 print(event.char) 9 10 frame = Frame(root,width=200,height=200) 11 #Key为键盘事件 12 frame.bind("<Key>",callback)#按键按下时,调用callback方法 13 frame.focus_set()#获得焦点 14 frame.pack() 15 16 mainloop()
实例3:捕获鼠标在组件上的运动轨迹
1 #当鼠标在组件内移动的整个过程均触发该事件 2 3 from tkinter import* 4 5 root = Tk() 6 7 def callback(event): 8 print("当前位置:",event.x,event.y)#打印当前按下按键的字符 9 10 frame = Frame(root,width=200,height=200) 11 frame.bind("<Motion>",callback)#按键按下时,调用callback方法 12 frame.pack() 13 14 mainloop()
事件序列
Tkinter使用一种称为事件序列的机制来允许用户定义事件,用户需要使用bind()方法将具体的事件序列与自定义的方法绑定
Event对象(按键名keysym和按键码keycode)
实例1:打印当前按下按键的按键名
1 from tkinter import* 2 3 root = Tk() 4 5 def callback(event): 6 print(event.keysym)#打印当前按下按键的按键名 7 print(event.char) 8 9 frame = Frame(root,width=200,height=200) 10 #Key为键盘事件 11 frame.bind("<Key>",callback)#按键按下时,调用callback方法 12 frame.focus_set()#获得焦点 13 frame.pack() 14 15 mainloop()标签:074,Python,GUI,event,callback,按下,按键,root,frame From: https://www.cnblogs.com/ybqjymy/p/17651444.html