如何向Tkinter的事件处理程序传递参数?

如何向Tkinter的事件处理程序传递参数?

在大多数情况下,回调函数可以作为实例方法来引用。实例方法可以访问其所有成员并执行其中的操作,而不需要指定任何参数。

现在设想这样一种情况:定义了多个组件,我们想要处理这些组件的一些事件。为了运行多个事件,我们希望向事件处理程序中传递多个参数。

示例

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

#导入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="这是低值")
def event_mid(button2):
   label.config(text="这是中等值")
def event_high(button3):
   label.config(text="这是最高值")
#创建一个标签
label = Label(win, text="", font=('Helvetica 15 underline'))
label.pack()
#创建一个框架
frame = Frame(win)
#在框架中创建按钮
button1 = ttk.Button(frame, text="低值", command=lambda:event_low(button1))
button1.pack(pady=10)
button2 = ttk.Button(frame, text="中等值", command=lambda:event_mid(button2))
button2.pack(pady=10)
button3 = ttk.Button(frame, text="最高值", command=lambda:event_high(button3))
button3.pack(pady=10)
frame.pack()
win.mainloop()
Python

输出

运行上述代码将显示一个包含低值、中等值和最高值按钮的窗口。当单击一个按钮时,会在窗口上显示一些标签文本。

如何向Tkinter的事件处理程序传递参数?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册