Tkinter 一个事件绑定多个事件处理程序
之前程序中使用bind( )方法时可以绑定一个事件处理程序,tkinter也允许我们执行一个事件绑定多个事件处理程序,同样是使用bind( )方法,但是新增加的事件处理程序需要在bind( )方法内增加参数add="+"。
from tkinter import *
def buttonClicked1(): # Button按钮事件处理程序1
print("#1 Command event handler, I like tkinter...")
def buttonClicked2(event): # Button按钮事件处理程序2
print("#2 Bind event handler, I like tkinter...")
def buttonClicked3(event): # Button按钮事件处理程序3
print("#3 Bind event handler, I like tkinter...")
def buttonClicked4(event): # Button按钮事件处理程序4
print("#4 Bind event handler, I like tkinter...")
root = Tk()
root.title("apidemos.com") # 窗口标题
root.geometry("300x180") # 窗口宽300高180
btn = Button(root,text="tkinter",command=buttonClicked1)
btn.pack(anchor=W,padx=10,pady=10)
btn.bind("<Button-1>",buttonClicked2,add="+")
btn.bind("<Button-1>",buttonClicked3,add="+")
btn.bind("<Button-1>",buttonClicked4,add="+")
root.mainloop()
输出:
若单击tkinter功能按钮,可以在Python Shell窗口中看到执行两个事件处理程序的结果。
从上述我们也发现了当单击按钮事件发生时,程序会先执行bind( )绑定的程序,然后再执行Button()内command指定的程序。