如何让 tkinter OptionMenu 显示所选选项的名称?
How to get tkinter OptionMenu to display the name of the selected option?
在 tkinter
中,我使用 OptionMenu
class 创建了一个选项菜单。例如,下面的 OptionMenu
有选项 A
、B
、C
、D
等:
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())
在 tkinter
中,我使用 OptionMenu
class 创建了一个选项菜单。例如,下面的 OptionMenu
有选项 A
、B
、C
、D
等:
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())