只有主菜單沒有二級菜單的例子:

from tkinter import * root=Tk() root.wm_title('同濟大學財務管理系統') menubar=Menu(root)#指定菜單實例的父窗口是root for item in ['文件','編輯','視圖','關於']: menubar.add_command(label=item) root['menu']=menubar#指定主窗口的'menu'屬性為剛剛創建的menubar root.mainloop()
主菜單攜帶子菜單的例子:

from tkinter import * root=Tk() menubar=Menu(root)# it produces a menu instance fmenu=Menu(menubar) for item in ['新建','打開','保存','另存為']: fmenu.add_cascade(label=item) emenu=Menu(menubar) for item in ['復制','粘貼','剪切']: emenu.add_cascade(label=item) vmenu=Menu(menubar) for item in ['默認視圖','新式視圖']: vmenu.add_cascade(label=item) amenu=Menu(menubar) for item in ['版權信息','其他說明']: amenu.add_cascade(label=item) menubar.add_cascade(label='文件',menu=fmenu) menubar.add_cascade(label='編輯',menu=emenu) menubar.add_cascade(label='視圖',menu=vmenu) menubar.add_cascade(label='關於',menu=amenu) root['menu']=menubar root.mainloop()
制作彈出式菜單的例子:

from tkinter import * def xianshi(): #global root x1=Label(root,text='I love China',background='blue') x1.pack() root=Tk()#制作一個盛所有窗口的容器 menubar=Menu(root)#制作一個菜單實例 for x in ['vb','c','java','php','c++']: menubar.add_command(label=x) menubar.add_command(label='python',command=xianshi) def pop(event): menubar.post(event.x_root,event.y_root) root.bind('<Button-3>',pop) root.mainloop()
帶分割橫線的二級菜單:

from tkinter import * root=Tk() m=Menu(root)#創建一個菜單實例m,這個菜單實例依附在主窗口root上面。 m2=Menu(m)#創建一個二級菜單實例,這個實例依附在菜單m上,因為Menu的參數是widget,它是一個窗 #口,m也算是一個窗口了,只不過是菜單窗口。 for item in ['python','perl','php','ruby']: m2.add_command(label=item)#菜單m2調用add_command方法,用來增加菜單項目標簽 m2.add_separator()#添加分割線,不需要任何參數 for item in ['java','c++','c']: m2.add_command(label=item)#增加二級菜單項目標簽 m.add_cascade(label='語言',menu=m2)#給依附在root容器上的一級菜單m增加一個二級菜單 root['menu']=m#給root增加菜單屬性,讓其擁有一級菜單 root.mainloop()
增加復選按鈕與單選按鈕:

from tkinter import * root=Tk() m=Menu(root)#創建一個菜單實例m,這個菜單實例依附在主窗口root上面。 m2=Menu(m)#創建一個二級菜單實例,這個實例依附在菜單m上,因為Menu的參數是widget,它是一個窗 #口,m也算是一個窗口了,只不過是菜單窗口。 for item in ['python','perl','php','ruby']: m2.add_checkbutton(label=item)#菜單m2調用add_command方法,用來增加菜單項目標簽,復選按鈕 m2.add_separator()#添加分割線,不需要任何參數 for item in ['java','c++','c']: m2.add_radiobutton(label=item)#增加二級菜單項目標簽,單選按鈕 m.add_cascade(label='語言',menu=m2)#給依附在root容器上的一級菜單m增加一個二級菜單 root['menu']=m#給root增加菜單屬性,讓其擁有一級菜單 root.mainloop()