在tkinter python中是否可以在另一个optionmenu中包含optionmenu

在tkinter python中是否可以在另一个optionmenu中包含optionmenu,python,tkinter,optionmenu,Python,Tkinter,Optionmenu,我希望选项菜单中的某些项目有更多选项可供选择。我知道菜单和菜单按钮小部件,但这些对我没有帮助。我必须使用optionmenu一个optionmenu实际上只是一个菜单按钮和一个菜单,加上一点语法糖 下面是一个简单的示例,演示了如何在类似于optionmenu的内容上设置子菜单: import tkinter as tk root = tk.Tk() var = tk.StringVar(value="one") menubutton = tk.Menubutton(root, textvari

我希望选项菜单中的某些项目有更多选项可供选择。我知道菜单和菜单按钮小部件,但这些对我没有帮助。我必须使用optionmenu

一个optionmenu实际上只是一个菜单按钮和一个菜单,加上一点语法糖

下面是一个简单的示例,演示了如何在类似于optionmenu的内容上设置子菜单:

import tkinter as tk

root = tk.Tk()
var = tk.StringVar(value="one")
menubutton = tk.Menubutton(root, textvariable=var, indicatoron=True,
                           borderwidth=1, relief="raised", width=20)
main_menu = tk.Menu(menubutton, tearoff=False)
menubutton.configure(menu=main_menu)

for item in (("Numbers", "one", "two", "three"),
             ("Colors", "red", "green", "blue")
):
    menu = tk.Menu(main_menu, tearoff=False)
    main_menu.add_cascade(label=item[0], menu=menu)
    for value in item[1:]:
        menu.add_radiobutton(value=value, label=value, variable=var)

menubutton.pack(side="top", padx=20, pady=20)

root.mainloop()

如果您希望用户能够从每个子菜单中选择不同的值,您可以为每个菜单创建一个新的
StringVar
。但是,您必须自己编写一些代码来更新按钮的标签。

为什么菜单和菜单按钮对您没有帮助?这就是optionmenu的全部——它实际上是一个菜单按钮和一个菜单,还有一点点代码。为什么你必须使用optionmenu?我有一个optionmenu列表(大约40个),用一个按钮a获取它们的值。此外,我希望能够看到每个选项的选择,就像optionmenu一样。用菜单按钮可以吗?是的,用菜单按钮可以。就像我说的,optionmenu是一个带有附加菜单的菜单按钮。