2016-04-05 34 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