Ich versuche, einen Menubutton mit Menüs darin zu erstellen, und bin nicht in der Lage, etwas in tkinter's Dokumentation zu finden, habe ich es vermisst, oder ist es nicht möglich? Hier ist ein Beispiel dafür, was ich zu tun versucht:Hinzufügen eines Menüs innerhalb eines Menubuttons? Python
-1
A
Antwort
3
Sie ein Menü erstellen und Nest weitere Menüs ineinander. Hier ist der Link zu den relevanten documentation
Ein kleines Beispiel für verschachtelte Menüs wie in Ihrer Frage.
from tkinter import *
root = Tk()
menubar = Menu(root)
helpmenu = Menu(menubar)
nested_menu1 = Menu(helpmenu)
nested_menu1.add_command(label='Stuff 1')
nested_menu1.add_command(label='Stuff 2')
nested_menu2 = Menu(helpmenu)
nested_menu2.add_command(label='Stuff 3')
nested_menu2.add_command(label='Stuff 4')
menu2_nested = Menu(nested_menu2)
menu2_nested.add_command(label='Stuff 5')
nested_menu2.add_cascade(label='Nestception', menu=menu2_nested)
helpmenu.add_cascade(label='1.0 Nested', menu=nested_menu1)
helpmenu.add_cascade(label='2.0 Nested', menu=nested_menu2)
menubar.add_cascade(label="Nested Menus", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
Sie können dann mehr Platten zum horizontalen Menü hinzufügen, indem Sie den Vorgang für Menü Hilfe zu wiederholen und dann können Sie entweder eine Menüoption mit weiterem Drop-Down-Menü oder eine ganze Reihe von diesen und natürlich kann man so viel kann Nest haben wie es Dir gefällt.
Sie können sogar diese Menüs innerhalb Ihres menubutton
setzen, oder man konnte Nest weiter menubutton ist, und legen Sie sie überall in Ihrem Layout:
from tkinter import *
top = Tk()
for i in range(10):
for j in range(10):
mb= Menubutton(top, text="Menu 1")
mb.menu = Menu(mb)
mb["menu"] = mb.menu
helpmenu = Menu(mb.menu)
nested_menu1 = Menu(helpmenu)
nested_menu1.add_command(label='Stuff 1')
nested_menu1.add_command(label='Stuff 2')
nested_menu2 = Menu(helpmenu)
nested_menu2.add_command(label='Stuff 3')
nested_menu2.add_command(label='Stuff 4')
menu2_nested = Menu(nested_menu2)
menu2_nested.add_command(label='Stuff 5')
nested_menu2.add_cascade(label='Nestception', menu=menu2_nested)
helpmenu.add_cascade(label='1.0 Nested', menu=nested_menu1)
helpmenu.add_cascade(label='2.0 Nested', menu=nested_menu2)
mb.menu.add_cascade(label="Nested Menus", menu=helpmenu)
mb.grid(row=i, column=j)
top.mainloop()
Vielen Dank für die Antwort, aber das ist nicht ganz das, was ich fragte Ich versuche, ein Menü in einem Menübutton zu verschachteln, nicht ein Menü innerhalb eines Menüs. – Jose
Ich sollte wahrscheinlich ein Beispiel für Code geben, werde ich in der Lage sein, dies zu tun, wenn ich heute Vorträge abschließe, also etwa 4 Stunden von jetzt an. – Jose