事件
- 如果大家学习过Windows编程,经常会听到“Windows是基于消息的”,而绝大多数界面编程也都会提及“事件”
- 我们的很多操作,比如我们点击了一下鼠标,这就是一个事件,而操作系统也会根据我们相应的事件产生相应的消息,操作系统把消息传递给我们的应用程序,然后我们的应用程序根据操作系统传入的数据执行相应的命令。
- 事件是我们触发的,消息是操作系统根据我们的事件产生的,我们通常对于“消息”并不多关注,我们重视的是“事件”
事件及其绑定
1、其实,我们在按钮的那一刻就接触到了事件的绑定,使用的函数是bind
2、bind函数的调用规则,窗体对象.bind(事件类型,回调函数)
3、所谓的“回调函数”,就是这个函数我们不用去调用它,当相应的事件发生的时候,他会自动取出调用,比如当我们按下按钮的时候,它会被自动调用
常用的事件
1、我们在使用bind函数的时候,他的第一个参数就是事件的类型了。
2、Button-1 表示鼠标左键单击,其中的1换成3表示右键被单击,表示2的时候表示鼠标中键。
3、KeyPress-A表示A键被按下,其中的A可以换成其他键位
4、Control-V表示按下的是Ctrl和V键,V可以换成其他键位。
5、F1表示按下的是F1键,对于Fn系列的,都可以随便换。
绑定
1、事件不仅仅可以与button绑定,bind函数是定义在Misc类里的,也就是说,这个bind可以被绝大多数组件所使用,也就是说,我们可以让“标签”模拟“按钮”的作用。
2、因为标签是Label类,而Label类继承自Widget,而Widget继承自BaseWidget继承自Misc
from tkinter import *
def myLabel(event):
global py
s = Label(py, text = "人生苦短,我学python")
s.pack()
py = Tk()
n = Label(py,text = "我可不是真的button")
n.bind("<Button-1>",myLabel)
n.pack()
py.mainloop()
关于bind函数
1、关于bind函数,还有两个版本,使用的方面不同。
2、可以在全程序级别的绑定,使用bind_all,它的参数类型和bind一样,它通常用于全局的快捷键,比如F1通常是用来打开帮助文档的。
解除绑定
1、解除绑定使用unbind方法,他和bind的使用很相似。
2、不过unbind方法只需要一个参数就可以了,它只需要解除绑定的事件的类型,因为它会解除该绑定事件类型的所有回调函数。