如何使用 Tkinter 中的 OptionMenu 小部件调用函数?

让我们举个例子,看看如何在 Tkinter 中使用 OptionMenu 小部件调用函数。在示例中,我们将使用StringVar对象并调用其get()方法。Tkinter 中的StringVar对象可以帮助管理小部件的值。

我们将创建一个 OptionMenu 小部件并用字符串列表填充它。当用户选择一个选项时,它将调用一个函数,该函数又会将所选选项打印为标签。

步骤 -

  • 导入 tkinter 库并创建 tkinter 框架的实例。

  • 使用几何方法设置框架的大小。

  • 创建一组字符串并将其保存在变量data中。

  • 接下来,使用StringVar()构造函数创建一个StringVar对象。它有助于管理一个小部件的值,在这种情况下是一个OptionMenu

  • 创建一个字符串列表“选项”和一个OptionMenu通过传递StringVar对象和"options"来设置 OptionMenu 的值。

  • 创建一个标签以显示从 OptionMenu 中选择的选项。

  • 创建一个用户自定义函数“OptionMenu_Select”来打印标签中OptionMenu中选择的项目。

  • 当用户选择一个选项时,使用参数command=OptionMenu_Select来调用用户定义的函数。

  • 最后,运行应用程序窗口的主循环。

示例

# Import the tkinter library
from tkinter import *

# Create an instance of tkinter frame
root = Tk()
root.geometry("700x300")

# Create the option and Check Button Event
def OptionMenu_Select(event):
label_city.config(text="您已选择: " + var.get())

# Create the variables
var = StringVar();
var.set("Select a City")

options = ["Mumbai", "Chennai", "Bhubaneswar", "Pune", "Patna", "Bhopal", "Surat", "Hyderabad", "New Delhi", "Lucknow"]
OptionMenu(root, var, *(options), command=OptionMenu_Select).pack(pady=50)

label_city=Label(root, font="Calibri,12,bold")
label_city.pack(padx=20, pady=20)

root.mainloop()
输出结果

它将产生以下输出 -

当用户选择一个选项时,它会将所选选项显示为标签 -