【发布时间】:2021-06-28 03:16:10
【问题描述】:
目前是 Tkinter 的新手,在研究时我发现关于 Tkinter 的 OptionMenu 小部件的文档很少。我希望能够为多个菜单使用单个回调函数,但我不知道如何做到这一点。
目前,我的代码是这样的:
root = tk.Tk()
options = ["Option A", "Option B"]
message = "Nothing selected!"
def optionsCallback(selection):
message.set(selection)
#more code here
optionsMenu = ttk.OptionMenu(root, tk.StringVar(),
"Select an option",*options,
command = optionsCallback).pack()
optionsLbl = ttk.Label(root, textvariable = message).pack()
是否可以指定一个附加参数,以便回调函数能够破译哪个 OptionMenu 是调用它的那个?
类似这样的:
root = tk.Tk()
message = "Nothing selected!"
options = ["Option A", "Option B"]
def optionsCallback(selection, menu):
if menu == 'A':
message.set("this is menu A, " + selection)
if menu == 'B':
message.set("this is menu B, " + selection)
optionsMenuA = ttk.OptionMenu(root, tk.StringVar(),
"Select an option",*options,
command = optionsCallback).pack() #how to specify?
optionsMenuB = ttk.OptionMenu(root, tk.StringVar(),
"Select an option",*options,
command = optionsCallback).pack() #how to specify?
optionsLbl = ttk.Label(root, textvariable = message).pack()
【问题讨论】:
标签: python tkinter optionmenu