2016-04-05 35 views
-1

我想创建一个带有菜单的menubutton,并且无法在tkinter的文档中找到任何东西,我错过了它,还是不可能?这里是什么,我试图做一个例子:在menubutton中添加菜单? Python

回答

3

您可以创建一个菜单,并进一步嵌套菜单的内部彼此。这里是相关链接documentation

嵌套菜单的一个小例子,就像你的问题。

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() 

然后,您可以通过重复helpmenu过程中添加更多的面板水平菜单,然后你可以有进一步的下拉菜单,当然你可以嵌套多达任何一个菜单选项或它们的整排和随你便。

你甚至可以把这些菜单的内线您menubutton的,或者你可以进一步嵌套菜单按钮的,和任何地方放置在你的布局:

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() 
+0

感谢您的答复,但这并不完全是我是问,我试图在menubutton中嵌套菜单,而不是菜单中的菜单。 – Jose

+0

我应该提供一个代码示例,当我今天完成讲座时,我将能够做到这一点,从现在开始大约4个小时。 – Jose