-1

tkinter中,我使用OptionMenu该类创建了一个选项菜单。例如,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

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

4

2 回答 2

1

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

def selectData(self, selected):
    print(selected)
    # or print(self.clicked.get())
于 2020-06-17T06:32:56.953 回答
0

这会将下拉选择打印到控制台。但我的建议是避免在基于 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()
于 2020-06-17T06:25:22.887 回答