除了前面提到的Button中绑定command的事件之外,还有一种使用bind进行绑定事件的方式
介绍几个常用的鼠标事件:
< Button-1> 单击鼠标左键
< Button-3> 单击鼠标右键
< Button-4> 鼠标滚轮向上滚动
< Button-5> 鼠标滚轮上下滚动
< Motion> 鼠标移动-
< ButtonRelease-1> 松开鼠标左键
< DoubleButton-1> 双击鼠标左键
from tkinter import*
def showGrilFriend():
lbl.config(text="我的名字叫女朋友")
root=Tk()
root.title("Print GrilFriend")
root.geometry("300x200")
# 按钮
btn=Button(root,text="打印",command=showGrilFriend)
btn.pack(anchor=S)
# 创建一个显示用的Label
lbl=Label(root,bg="yellow",fg="blue",height=2,width=15,font="Times 16 bold")
lbl.pack()
root.mainloop()
下面使用bind方法为Button绑定事件
唯一的区别就是不在需要绑定command,并且回调中需要传事件对象作为参数
from tkinter import*
# 回调的时候,传入event事件对象
def showGrilFriend(event):
lbl.config(text="我的名字叫女朋友")
root=Tk()
root.title("Print GrilFriend")
root.geometry("300x200")
# 按钮
btn=Button(root,text="打印")
btn.pack(anchor=S)
# 将按钮的单击事件绑定到showGrilFriend回调函数上
btn.bind("" ,showGrilFriend)
# 创建一个显示用的Label
lbl=Label(root,bg="yellow",fg="blue",height=2,width=15,font="Times 16 bold")
lbl.pack()
root.mainloop()
from tkinter import*
# 打印鼠标位置
def printMouseLocation(event):
x=event.x
y=event.y
printInfo="鼠标位置 x:{},y:{}".format(x,y)
var.set(printInfo)
root=Tk()
root.title("Print mouse location")
root.geometry("500x300")
x,y=0,0
var=StringVar()
text="鼠标位置 x:{},y:{}".format(x,y)
var.set(text) # 显示的初始位置为0,0
lbl=Label(root,textvariable=var)
lbl.pack(anchor=S,side=RIGHT,padx=10,pady=10)
# 为鼠标的移动事件绑定printMouseLocation方法
root.bind("" ,printMouseLocation)
root.mainloop()
from tkinter import*
def callback(event):
print("鼠标点击位置:",event.x,event.y)
# 取消事件订阅
def cancelEvent():
frame.unbind("" ) # 取消绑定
print("鼠标位置打印功能已经被取消")
root=Tk()
root.title("Mouse location")
btn=Button(root,text="取消事件",fg="black",command=cancelEvent)
btn.pack(side=TOP,padx=5,pady=5)
frame=Frame(root,width=500,height=280,bg="yellow")
frame.bind("" ,callback)
frame.pack()
root.mainloop()
from tkinter import*
# 单击事件回调
def clickCallback(event):
print("this is click event")
# 单击并松开事件回调
def releaseCallback(event):
print("this is release event")
root=Tk()
root.title("Multi event")
root.geometry("300x100")
btn=Button(root,text="Trigger")
btn.pack(anchor=W,padx=10,pady=10)
btn.bind("" ,clickCallback,add="+") # 绑定单击事件
btn.bind("" ,releaseCallback,add="+") # 绑定松手事件
root.mainloop()
运行
当然,除了以上介绍的鼠标事件,键盘也是有事件的,大同小异,这里就不做介绍了
拜了个拜,如有疑问欢迎随时交流。。。。