是否有可能在tkinter python中的另一个optionmenu中有一个optionmenu

时间:2017-11-08 18:34:50

标签: python tkinter optionmenu

我想要一个选项菜单中的一些项目有更多选项可供选择。我知道菜单和menubutton小部件,但这些不帮助我。我必须使用optionmenu

1 个答案:

答案 0 :(得分:1)

一个选项菜单实际上只是一个menubutton和一个菜单,带有一点句法糖。

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

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