是否有可以嵌套的 OptionMenu 等 Tkinter 小部件?

Ada*_*dam 0 python nested tkinter optionmenu drop-down-menu

我正在尝试使用类似 OptionMenu 的列表选择器,但我想要嵌套选项。我希望它们像嵌套菜单一样(文件-> 保存),但我需要对其进行网格化。

如果这是不可能的(缺少编写自定义小部件),我最终将有两个选择器,第一个选择“主菜单”,第二个处理“子菜单”,但我真的很想避免这样做。

Bry*_*ley 6

Am optionmenu 只是一个创建菜单按钮和菜单的便利功能。你可以很容易地自己做到这一点。下面是一个例子:

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)

        items = {"one": ["a","b","c"],
                 "two": ["d","e","f"],
                 "three": ["g","h","i"]}

        self.the_value = tk.StringVar()
        self.the_value.set("a")

        self.menubutton = tk.Menubutton(self, textvariable=self.the_value, indicatoron=True)
        self.topMenu = tk.Menu(self.menubutton, tearoff=False)
        self.menubutton.configure(menu=self.topMenu)

        for key in sorted(items.keys()):
            menu = tk.Menu(self.topMenu)
            self.topMenu.add_cascade(label=key, menu=menu)
            for value in items[key]:
                menu.add_radiobutton(label=value, variable = self.the_value, value=value)

        self.menubutton.pack()

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(fill="both", expand=True)
    root.mainloop()
Run Code Online (Sandbox Code Playgroud)