from tkinter import *
def new_file():
print("Open new file")
def open_file():
print("Open existing file")
def stub_action():
print("Menu select")
def makeCommandMenu():
CmdBtn = Menubutton(mBar, text='Button Commands', underline=0)
CmdBtn.pack(side=LEFT, 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=new_file)
CmdBtn.menu.add_command(label='Open...', underline=0, command=open_file)
CmdBtn.menu.add_command(label='Wild Font', underline=0,
font=('Tempus Sans ITC', 14), command=stub_action)
#CmdBtn.menu.add_command(bitmap="@bitmaps/RotateLeft")
CmdBtn.menu.add('separator')
CmdBtn.menu.add_command(label='Quit', underline=0,
background='white', activebackground='green',
command=CmdBtn.quit)
CmdBtn['menu'] = CmdBtn.menu
return CmdBtn
def makeCascadeMenu():
CasBtn = Menubutton(mBar, text='Cascading Menus', underline=0)
CasBtn.pack(side=LEFT, padx="2m")
CasBtn.menu = Menu(CasBtn)
CasBtn.menu.choices = Menu(CasBtn.menu)
CasBtn.menu.choices.wierdones = Menu(CasBtn.menu.choices)
CasBtn.menu.choices.wierdones.add_command(label='A')
CasBtn.menu.choices.wierdones.add_command(label='B')
CasBtn.menu.choices.wierdones.add_command(label='C')
CasBtn.menu.choices.wierdones.add_command(label='D')
CasBtn.menu.choices.add_command(label='A')
CasBtn.menu.choices.add_command(label='B')
CasBtn.menu.choices.add_command(label='C')
CasBtn.menu.choices.add_command(label='D')
CasBtn.menu.choices.add_command(label='E')
CasBtn.menu.choices.add_command(label='F')
CasBtn.menu.choices.add_cascade(label='G',
menu=CasBtn.menu.choices.wierdones)
CasBtn.menu.add_cascade(label='Scipts', menu=CasBtn.menu.choices)
CasBtn['menu'] = CasBtn.menu
return CasBtn
def makeCheckbuttonMenu():
ChkBtn = Menubutton(mBar, text='Checkbutton Menus', underline=0)
ChkBtn.pack(side=LEFT, padx='2m')
ChkBtn.menu = Menu(ChkBtn)
ChkBtn.menu.add_checkbutton(label='A')
ChkBtn.menu.add_checkbutton(label='B')
ChkBtn.menu.add_checkbutton(label="C")
ChkBtn.menu.add_checkbutton(label='D')
ChkBtn.menu.add_checkbutton(label='E')
ChkBtn.menu.invoke(ChkBtn.menu.index('C'))
ChkBtn['menu'] = ChkBtn.menu
return ChkBtn
def makeRadiobuttonMenu():
RadBtn = Menubutton(mBar, text='Radiobutton Menus', underline=0)
RadBtn.pack(side=LEFT, padx='2m')
RadBtn.menu = Menu(RadBtn)
RadBtn.menu.add_radiobutton(label='A')
RadBtn.menu.add_radiobutton(label='B')
RadBtn.menu.add_radiobutton(label='C')
RadBtn.menu.add_radiobutton(label='D')
RadBtn.menu.add_radiobutton(label='E')
RadBtn.menu.add_radiobutton(label='F')
RadBtn.menu.add_radiobutton(label='G')
RadBtn.menu.add_radiobutton(label='H')
RadBtn.menu.add_radiobutton(label='I')
RadBtn['menu'] = RadBtn.menu
return RadBtn
def makeDisabledMenu():
Dummy_button = Menubutton(mBar, text='Disabled Menu', underline=0)
Dummy_button.pack(side=LEFT, padx='2m')
Dummy_button["state"] = DISABLED
return Dummy_button
root = Tk()
mBar = Frame(root, relief=RAISED, borderwidth=2)
mBar.pack(fill=X)
CmdBtn = makeCommandMenu()
CasBtn = makeCascadeMenu()
ChkBtn = makeCheckbuttonMenu()
RadBtn = makeRadiobuttonMenu()
NoMenu = makeDisabledMenu()
mBar.tk_menuBar(CmdBtn, CasBtn, ChkBtn, RadBtn, NoMenu)
root.title('Menus')
root.mainloop()
def new_file():
print("Open new file")
def open_file():
print("Open existing file")
def stub_action():
print("Menu select")
def makeCommandMenu():
CmdBtn = Menubutton(mBar, text='Button Commands', underline=0)
CmdBtn.pack(side=LEFT, 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=new_file)
CmdBtn.menu.add_command(label='Open...', underline=0, command=open_file)
CmdBtn.menu.add_command(label='Wild Font', underline=0,
font=('Tempus Sans ITC', 14), command=stub_action)
#CmdBtn.menu.add_command(bitmap="@bitmaps/RotateLeft")
CmdBtn.menu.add('separator')
CmdBtn.menu.add_command(label='Quit', underline=0,
background='white', activebackground='green',
command=CmdBtn.quit)
CmdBtn['menu'] = CmdBtn.menu
return CmdBtn
def makeCascadeMenu():
CasBtn = Menubutton(mBar, text='Cascading Menus', underline=0)
CasBtn.pack(side=LEFT, padx="2m")
CasBtn.menu = Menu(CasBtn)
CasBtn.menu.choices = Menu(CasBtn.menu)
CasBtn.menu.choices.wierdones = Menu(CasBtn.menu.choices)
CasBtn.menu.choices.wierdones.add_command(label='A')
CasBtn.menu.choices.wierdones.add_command(label='B')
CasBtn.menu.choices.wierdones.add_command(label='C')
CasBtn.menu.choices.wierdones.add_command(label='D')
CasBtn.menu.choices.add_command(label='A')
CasBtn.menu.choices.add_command(label='B')
CasBtn.menu.choices.add_command(label='C')
CasBtn.menu.choices.add_command(label='D')
CasBtn.menu.choices.add_command(label='E')
CasBtn.menu.choices.add_command(label='F')
CasBtn.menu.choices.add_cascade(label='G',
menu=CasBtn.menu.choices.wierdones)
CasBtn.menu.add_cascade(label='Scipts', menu=CasBtn.menu.choices)
CasBtn['menu'] = CasBtn.menu
return CasBtn
def makeCheckbuttonMenu():
ChkBtn = Menubutton(mBar, text='Checkbutton Menus', underline=0)
ChkBtn.pack(side=LEFT, padx='2m')
ChkBtn.menu = Menu(ChkBtn)
ChkBtn.menu.add_checkbutton(label='A')
ChkBtn.menu.add_checkbutton(label='B')
ChkBtn.menu.add_checkbutton(label="C")
ChkBtn.menu.add_checkbutton(label='D')
ChkBtn.menu.add_checkbutton(label='E')
ChkBtn.menu.invoke(ChkBtn.menu.index('C'))
ChkBtn['menu'] = ChkBtn.menu
return ChkBtn
def makeRadiobuttonMenu():
RadBtn = Menubutton(mBar, text='Radiobutton Menus', underline=0)
RadBtn.pack(side=LEFT, padx='2m')
RadBtn.menu = Menu(RadBtn)
RadBtn.menu.add_radiobutton(label='A')
RadBtn.menu.add_radiobutton(label='B')
RadBtn.menu.add_radiobutton(label='C')
RadBtn.menu.add_radiobutton(label='D')
RadBtn.menu.add_radiobutton(label='E')
RadBtn.menu.add_radiobutton(label='F')
RadBtn.menu.add_radiobutton(label='G')
RadBtn.menu.add_radiobutton(label='H')
RadBtn.menu.add_radiobutton(label='I')
RadBtn['menu'] = RadBtn.menu
return RadBtn
def makeDisabledMenu():
Dummy_button = Menubutton(mBar, text='Disabled Menu', underline=0)
Dummy_button.pack(side=LEFT, padx='2m')
Dummy_button["state"] = DISABLED
return Dummy_button
root = Tk()
mBar = Frame(root, relief=RAISED, borderwidth=2)
mBar.pack(fill=X)
CmdBtn = makeCommandMenu()
CasBtn = makeCascadeMenu()
ChkBtn = makeCheckbuttonMenu()
RadBtn = makeRadiobuttonMenu()
NoMenu = makeDisabledMenu()
mBar.tk_menuBar(CmdBtn, CasBtn, ChkBtn, RadBtn, NoMenu)
root.title('Menus')
root.mainloop()