| Viewing file:  menu-simple.py (3.17 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
from Tkinter import *
 # some vocabulary to keep from getting confused. This terminology
 # is something I cooked up for this file, but follows the man pages
 # pretty closely
 #
 #
 #
 #       This is a MENUBUTTON
 #       V
 # +-------------+
 # |             |
 #
 # +------------++------------++------------+
 # |            ||            ||            |
 # |  File      ||  Edit      || Options    |   <-------- the MENUBAR
 # |            ||            ||            |
 # +------------++------------++------------+
 # | New...         |
 # | Open...        |
 # | Print          |
 # |                |  <------ This is a MENU. The lines of text in the menu are
 # |                |                          MENU ENTRIES
 # |                +---------------+
 # | Open Files >   | file1         |
 # |                | file2         |
 # |                | another file  | <------ this cascading part is also a MENU
 # +----------------|               |
 #                  |               |
 #                  |               |
 #                  |               |
 #                  +---------------+
 
 
 
 def new_file():
 print "opening new file"
 
 
 def open_file():
 print "opening OLD file"
 
 
 def makeFileMenu():
 # make menu button : "File"
 File_button = Menubutton(mBar, text='File', underline=0)
 File_button.pack(side=LEFT, padx="1m")
 File_button.menu = Menu(File_button)
 
 # add an item. The first param is a menu entry type,
 # must be one of: "cascade", "checkbutton", "command", "radiobutton", "separator"
 # see menu-demo-2.py for examples of use
 File_button.menu.add_command(label='New...', underline=0,
 command=new_file)
 
 
 File_button.menu.add_command(label='Open...', underline=0,
 command=open_file)
 
 File_button.menu.add_command(label='Quit', underline=0,
 command='exit')
 
 # set up a pointer from the file menubutton back to the file menu
 File_button['menu'] = File_button.menu
 
 return File_button
 
 
 
 def makeEditMenu():
 Edit_button = Menubutton(mBar, text='Edit', underline=0)
 Edit_button.pack(side=LEFT, padx="1m")
 Edit_button.menu = Menu(Edit_button)
 
 # just to be cute, let's disable the undo option:
 Edit_button.menu.add('command', label="Undo")
 # Since the tear-off bar is the 0th entry,
 # undo is the 1st entry...
 Edit_button.menu.entryconfig(1, state=DISABLED)
 
 # and these are just for show. No "command" callbacks attached.
 Edit_button.menu.add_command(label="Cut")
 Edit_button.menu.add_command(label="Copy")
 Edit_button.menu.add_command(label="Paste")
 
 # set up a pointer from the file menubutton back to the file menu
 Edit_button['menu'] = Edit_button.menu
 
 return Edit_button
 
 
 #################################################
 
 #### Main starts here ...
 root = Tk()
 
 
 # make a menu bar
 mBar = Frame(root, relief=RAISED, borderwidth=2)
 mBar.pack(fill=X)
 
 File_button = makeFileMenu()
 Edit_button = makeEditMenu()
 
 # finally, install the buttons in the menu bar.
 # This allows for scanning from one menubutton to the next.
 mBar.tk_menuBar(File_button, Edit_button)
 
 root.title('menu demo')
 root.iconname('packer')
 
 root.mainloop()
 
 |