如何在 Tkinter 中将参数传递给事件处理程序?

pythontkinterserver side programmingprogramming

在大多数情况下,回调函数可以称为实例方法。实例方法访问其所有成员并使用它们执行操作,而无需指定任何参数。

让我们考虑这样一种情况:定义了多个组件,并且我们想用这些组件处理一些事件。要运行多个事件,我们倾向于在事件处理程序中传递多个参数。

示例

在此示例中,我们在框架中创建了多个按钮小部件,我们将通过将小部件的名称作为参数传递来处理各种事件。一旦单击按钮,它将更新标签小部件,依此类推。

#导入 Tkinter 库
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#创建 Tkinter 框架实例
win= Tk()
#定义几何图形
win.geometry("750​​x250")
#为不同的操作定义事件处理程序
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 的窗口。当我们单击按钮时,它将在窗口上显示一些标签文本。


相关文章