python之menu


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

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

主菜單攜帶子菜單的例子:

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

制作彈出式菜單的例子:

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

帶分割橫線的二級菜單:

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

增加復選按鈕與單選按鈕:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM