如何让 tkinter OptionMenu 显示所选选项的名称?

How to get tkinter OptionMenu to display the name of the selected option?

tkinter 中,我使用 OptionMenu class 创建了一个选项菜单。例如,下面的 OptionMenu 有选项 ABCD 等:

self.clicked = tk.StringVar(self.parent)
self.clicked.set("Select Column")

self.drop = tk.OptionMenu(self.parent, self.clicked, 'Select Column', command=self.idle)
    for i in columnNames[:]:
        self.drop['menu'].add_command(label=i, command=tk._setit(self.clicked, i, self.select_data))
self.drop.pack()

注意:函数 self.idle 只是一个 lambda *args: None.

函数self.select_data如下:

def select_data(self):
    for col_name in df.columns:
        if col_name == self.clicked.get():
            self.option_display = col_name

函数 self.select_data 只是检索用户从 OptionMenu 中选择的选项,但我如何更新 OptionMenu 以显示在 self.select_data 中选择的选项?

例如,如果用户选择选项 A,我将如何更新 OptionMenu 以显示 A 已选中?

这会将下拉选择打印到控制台。但我的建议是避免在基于 GUI 的应用程序中使用控制台。创建一个文本指示器并向其打印输出

from tkinter import *
tk = Tk()
def OptionMenu_SelectionEvent(event):
    print(var.get())
    pass
var = StringVar(); var.set("one")
options = ["one", "two", "three"]
OptionMenu(tk, var, *(options), command = OptionMenu_SelectionEvent).pack()
tk.mainloop()

selectData() 函数应具有以下签名:

def selectData(self, selected):
    print(selected)
    # or print(self.clicked.get())