python Tkinter学习笔记 menu控件 02

来源:互联网 发布:淘宝云客服待遇 编辑:程序博客网 时间:2024/04/30 12:16
'''Created on 2013-9-27@author: liangqianwu'''#_*_ coding:utf-8_*_from Tkinter import * def frame(root,side):    w=Frame(root)    w.pack(side=side,fill=BOTH)    return wdef button(root,side,text,command=None):    w=Button(root,text=text,command=command)    w.pack(side=side,expand=YES,fill=BOTH)    return wdef ShowMessage(root,text,relief=GROOVE,padx=10,pady=10):    Message(root,text=text,relief=relief).pack(padx=padx,pady=pady)def makeCommandMenu(root,text,side=LEFT,underline=0,padx=0,pady=0):    CmdBtn=Menubutton(root,text=text,underline=underline)    CmdBtn.pack(side=side,padx='2m')    CmdBtn.menu=Menu(CmdBtn)        CmdBtn.menu.add_command(label='Undo')    CmdBtn.menu.entryconfig(0,state=DISABLED)    CmdBtn.menu.add_command(label='New',underline=0,command=lambda r=root:ShowMessage(r,'select New'))    CmdBtn.menu.add_command(label='Open',underline=0)    CmdBtn.menu.add_command(label='Quit',underline=0,background='white',activebackground='green',command=CmdBtn.quit)    CmdBtn['menu']=CmdBtn.menu    return CmdBtndef makeCascadeMenu(root,text,side=LEFT,underline=0,padx=0,pady=0):    CasBtn=Menubutton(root,text=text,underline=underline)    CasBtn.pack(side=side,padx='2m')    CasBtn.menu=Menu(CasBtn)        CasBtn.menu.choices=Menu(CasBtn.menu)        CasBtn.menu.choices.wieerdones=Menu(CasBtn.menu.choices)    CasBtn.menu.choices.wieerdones.add_command(label='Stockbroker')    CasBtn.menu.choices.wieerdones.add_command(label='Quantity Surveyor')    CasBtn.menu.choices.wieerdones.add_command(label='Church Warden')    CasBtn.menu.choices.wieerdones.add_command(label='BRM')        CasBtn.menu.choices.add_command(label='Wooden Leg')    CasBtn.menu.choices.add_command(label='Hire Purchase')    CasBtn.menu.choices.add_command(label='Dead Creb')    CasBtn.menu.choices.add_command(label='Tree Surggeon')    CasBtn.menu.choices.add_cascade(label='Is it a...',menu=CasBtn.menu.choices.wieerdones)    CasBtn.menu.add_cascade(label='Scipts',menu=CasBtn.menu.choices)        CasBtn['menu']=CasBtn.menu    return CasBtndef makeCheckbuttonMenu(root,text,side=LEFT,underline=0,padx=0,pady=0):    ChkBtn=Menubutton(root,text=text,underline=underline)    ChkBtn.pack(side=side,padx='2m')    ChkBtn.menu=Menu(ChkBtn)        ChkBtn.menu.add_checkbutton(label='Doug')    ChkBtn.menu.add_checkbutton(label='Dinsdale')    ChkBtn.menu.add_checkbutton(label='Stig o ')    ChkBtn.menu.add_checkbutton(label='Vince')    ChkBtn.menu.add_checkbutton(label='Gloria Pules')        ChkBtn.menu.invoke(ChkBtn.menu.index('Dinsdale'))    ChkBtn['menu']=ChkBtn.menu    return ChkBtndef makeRadiobuttonMenu(root,text,side=LEFT,underline=0,padx=0,pady=0):    RadBtn=Menubutton(root,text=text,underline=underline)    RadBtn.pack(side=side,padx='2m')    RadBtn.menu=Menu(RadBtn)        RadBtn.menu.add_radiobutton(label='metonymy')    RadBtn.menu.add_radiobutton(label='zeugmatists')    RadBtn.menu.add_radiobutton(label='synechdotists')    RadBtn.menu.add_radiobutton(label='axiomists')    RadBtn.menu.add_radiobutton(label='anagogists')    RadBtn.menu.add_radiobutton(label='catachresis')    RadBtn.menu.add_radiobutton(label='periphrastic')        RadBtn['menu']=RadBtn.menu    return RadBtndef makeDisabledMenu(root,text,side=LEFT,underline=0,padx=0,pady=0):    Dummy_button=Menubutton(root,text=text,underline=underline)    Dummy_button.menu=Menu(Dummy_button)class Calculator(Frame):    def __init__(self):        Frame.__init__(self,borderwidth=2,width=200,height=110)        self.pack(fill=BOTH)        self.master.title('hello Menu')        self.master.iconname('calcl')        opsF=frame(self,TOP)        CmdBtn=makeCommandMenu(opsF,'Button Commands')        CasBtn=makeCascadeMenu(opsF,'Cascading Menus')        ChkBtn=makeCheckbuttonMenu(opsF,'check Menus')        RadBtn=makeRadiobuttonMenu(opsF,'Radiobutton Menus')        NoBtn=makeDisabledMenu(opsF,'NoBtn')        opsF.tk_menuBar(CmdBtn,ChkBtn,RadBtn,NoBtn)        Label(self,text='''hello my name is liang '''+              '''What are your name'''+              '''I love you ''').pack(side=BOTTOM)if __name__ =='__main__':    Calculator().mainloop()