我在給微信提供的itchat模塊寫圖形化界面時遇到的問題之一:tkinter創(chuàng)建多級子菜單。
示例代碼如下:
import tkinter
#主窗口:
window= tkinter.Tk()
window.title("簡易版微信小程序")
window.resizable(width=False, height=False)# 窗口大小不可改變
window.geometry("1000x800+650+100")
#頂級菜單,顯示在窗口最上方
menubar= tkinter.Menu(window)
#fmenu可理解為菜單容器,用于add菜單項
fmenu1=tkinter.Menu(window, tearoff=True)#tearoff=True 表示這個菜單可以被拖拽出來
fmenu1.add_separator()#分割線
fmenu1.add_command(label='菜單1-1')
fmenu1.add_separator()#分割線
fmenu1.add_command(label='菜單1-2')
fmenu1.add_separator()#分割線
fmenu1.add_command(label='菜單1-3')
fmenu2=tkinter.Menu(window)
fmenu2.add_separator()#分割線
fmenu2.add_command(label='菜單2-1')
fmenu3= tkinter.Menu(window)
fmenu3.add_separator()
fmenu3.add_command(label='菜單3-1')
fmenu3.add_separator()
fmenu3.add_command(label='菜單3-2')
fmenu4=tkinter.Menu(window)#創(chuàng)建了第四個菜單容器,add四個菜單容器,實現(xiàn)多級子菜單
fmenu4_1=tkinter.Menu(window)
fmenu4_1.add_command(label='菜單4-子菜單1-1')
fmenu4_1.add_command(label='菜單4-子菜單1-2')
fmenu4_2=tkinter.Menu(window)
fmenu4_2.add_command(label='菜單4-子菜單2-1')
fmenu4_2.add_command(label='菜單4-子菜單2-2')
fmenu4_3=tkinter.Menu(window)
fmenu4_3.add_command(label='菜單4-子菜單3-1')
fmenu4_3.add_command(label='菜單4-子菜單3-2')
fmenu4_4=tkinter.Menu(window)
fmenu4_4.add_command(label='菜單4-子菜單4-1')
fmenu4_4.add_command(label='菜單4-子菜單4-2')
#將fmenu4_1,fmenu4_2,fmenu4_3,fmenu4_4四個菜單容器加入fmenu4菜單容器中
fmenu4.add_cascade(label='菜單4-子菜單1', menu=fmenu4_1)
fmenu4.add_cascade(label='菜單4-子菜單2', menu=fmenu4_2)
fmenu4.add_cascade(label='菜單4-子菜單3', menu=fmenu4_3)
fmenu4.add_cascade(label='菜單4-子菜單4', menu=fmenu4_4)
#將“fmenu1、fmenu2、fmenu3、fmenu4”四個菜單容器加入頂級菜單中,并設(shè)置該菜單容器的label
menubar.add_cascade(label='菜單1',menu=fmenu1)
menubar.add_cascade(label='菜單2',menu=fmenu2)
menubar.add_cascade(label='菜單3',menu=fmenu3)
menubar.add_cascade(label='菜單4',menu=fmenu4)
window['menu']= menubar#設(shè)置窗口的菜單為menubar
window.mainloop()