简体   繁体   中英

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

I want some items from an optionmenu have further options to choose. I know about menu and menubutton widgets, but these dont help me. I have to use optionmenu

An optionmenu is literally just a menubutton and a menu, with a little bit of syntactic sugar.

Here's a simple example showing how you can have submenus on something that looks just like an 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()

If you want the user to be able to pick a different value from each sub-menu, you can just create a new StringVar for each menu. However, you'll have to write some code to update the label of the button yourself.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM