1. 方法总结
tkinter中事件绑定方法可以分为两大类:
- 组件对象的绑定,包含2种方法:
- 通过command属性绑定,适合简单不需要获取event对象的情况,
例如:Button(root,text="登录",command=login)
; - 通过
bind()
方法绑定,适合需要获取event对象的情况,
例如:l=Label(text="A"); l.bind("<Button-1>",sendMessage);
- 通过command属性绑定,适合简单不需要获取event对象的情况,
- 组件类的绑定:通过调用对象的
bind_class
函数,将该组件类所有的组件绑定事件,
例如btn.bind_class("<Button-1>",func)
2. 示例代码
from tkinter import *
def mouse_test01(name, sex):
print("command方式绑定,不能直接获取event对象,可以接受参数")
print("name:{},b:{}".format(name, sex))
print("====================")
def mouse_test02(event):
print("bind()方式绑定,可以获取event对象")
print(event.widget)
print("====================")
def mouse_test03(event):
print("bind_class方式绑定所有类,可以获取event对象")
print(event.widget)
print("====================")
if __name__ == '__main__':
root = Tk()
btn01 = Button(root, text="command方式绑定", command=lambda: mouse_test01("sz", "male"))
btn01.pack()
btn02 = Button(root, text="bind()方式绑定")
btn02.bind("<Button-1>", mouse_test02)
btn02.pack()
# 给所有按键添加右键事件
btn01.bind_class("Button", "<Button-3>", mouse_test03)
root.mainloop()
- 运行结果:
单击command方式测试按钮:
单击bind()方式测试按钮:
右击任意一个按钮:
注意: