是否可以在 tkinter 的另一个选项菜单中有一个选项菜单 python

is it possible to have an optionmenu inside another optionmenu in tkinter python

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

选项菜单实际上只是一个菜单按钮和一个菜单,带有一点语法糖。

这是一个简单的例子,展示了如何在看起来像选项菜单的东西上设置子菜单:

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。但是,您必须自己编写一些代码来更新按钮的标签。