是否可以在 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
。但是,您必须自己编写一些代码来更新按钮的标签。
我希望选项菜单中的某些项目有更多选项可供选择。我知道菜单和菜单按钮小部件,但这些对我没有帮助。我必须使用选项菜单
选项菜单实际上只是一个菜单按钮和一个菜单,带有一点语法糖。
这是一个简单的例子,展示了如何在看起来像选项菜单的东西上设置子菜单:
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
。但是,您必须自己编写一些代码来更新按钮的标签。