如何在 Tkinter 中向事件处理程序传递参数?
在大多数情况下,回调函数可以称为实例方法。实例方法访问其所有成员并在不指定任何参数的情况下对它们执行操作。
让我们考虑一个定义了多个组件并且我们希望使用这些组件处理某些事件的情况。为了运行多个事件,我们更倾向于在事件处理程序中传递多个参数。
示例
在此示例中,我们在框架中创建了多个按钮小部件,我们将通过将小部件的名称作为参数来处理各种事件。一旦单击某个按钮,它将更新标签小部件,依此类推。
#Import the Tkinter library
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#Create an instance of Tkinter frame
win= Tk()
#Define the geometry
win.geometry("750x250")
#Define Event handlers for different Operations
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")
#Create a Label
label= Label(win, text="",font=('Helvetica 15 underline'))
label.pack()
#Create a frame
frame= Frame(win)
#Create Buttons in the frame
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()输出
运行以上代码将显示一个包含“低”、“中”和“高”按钮的窗口。当我们单击一个按钮时,它将在窗口上显示一些标签文本。

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP