如何在 Tkinter 中将参数传递给事件处理程序?
pythontkinterserver side programmingprogramming
在大多数情况下,回调函数可以称为实例方法。实例方法访问其所有成员并使用它们执行操作,而无需指定任何参数。
让我们考虑这样一种情况:定义了多个组件,并且我们想用这些组件处理一些事件。要运行多个事件,我们倾向于在事件处理程序中传递多个参数。
示例
在此示例中,我们在框架中创建了多个按钮小部件,我们将通过将小部件的名称作为参数传递来处理各种事件。一旦单击按钮,它将更新标签小部件,依此类推。
#导入 Tkinter 库 from tkinter import * from tkinter import ttk from tkinter import filedialog #创建 Tkinter 框架实例 win= Tk() #定义几何图形 win.geometry("750x250") #为不同的操作定义事件处理程序 def event_low(button1): label.config(text="This is Lower Value") def event_mid(button2): label.config(text="This is Medium Value") def event_high(button3): label.config(text="This is Highest value") #创建一个标签 label= Label(win, text="",font=('Helvetica 15 underline')) label.pack() #创建一个框架 frame= Frame(win) #在框架中创建按钮 button1= ttk.Button(frame, text="Low", command=lambda:event_low(button1)) button1.pack(pady=10) button2= ttk.Button(frame, text="Medium",command= lambda:event_mid(button2)) button2.pack(pady=10) button3= ttk.Button(frame, text="High",command= lambda:event_high(button3)) button3.pack(pady=10) frame.pack() win.mainloop()
输出
运行上述代码将显示一个包含按钮 Low、Medium 和 High 的窗口。当我们单击按钮时,它将在窗口上显示一些标签文本。