~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Demo/tkinter/matt/menu-simple.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from tkinter import *
 
2
 
 
3
# some vocabulary to keep from getting confused. This terminology
 
4
# is something I cooked up for this file, but follows the man pages
 
5
# pretty closely
 
6
#
 
7
#
 
8
#
 
9
#       This is a MENUBUTTON
 
10
#       V
 
11
# +-------------+
 
12
# |             |
 
13
#
 
14
# +------------++------------++------------+
 
15
# |            ||            ||            |
 
16
# |  File      ||  Edit      || Options    |   <-------- the MENUBAR
 
17
# |            ||            ||            |
 
18
# +------------++------------++------------+
 
19
# | New...         |
 
20
# | Open...        |
 
21
# | Print          |
 
22
# |                |  <------ This is a MENU. The lines of text in the menu are
 
23
# |                |                          MENU ENTRIES
 
24
# |                +---------------+
 
25
# | Open Files >   | file1         |
 
26
# |                | file2         |
 
27
# |                | another file  | <------ this cascading part is also a MENU
 
28
# +----------------|               |
 
29
#                  |               |
 
30
#                  |               |
 
31
#                  |               |
 
32
#                  +---------------+
 
33
 
 
34
 
 
35
 
 
36
def new_file():
 
37
    print("opening new file")
 
38
 
 
39
 
 
40
def open_file():
 
41
    print("opening OLD file")
 
42
 
 
43
 
 
44
def makeFileMenu():
 
45
    # make menu button : "File"
 
46
    File_button = Menubutton(mBar, text='File', underline=0)
 
47
    File_button.pack(side=LEFT, padx="1m")
 
48
    File_button.menu = Menu(File_button)
 
49
 
 
50
    # add an item. The first param is a menu entry type,
 
51
    # must be one of: "cascade", "checkbutton", "command", "radiobutton", "separator"
 
52
    # see menu-demo-2.py for examples of use
 
53
    File_button.menu.add_command(label='New...', underline=0,
 
54
                                 command=new_file)
 
55
 
 
56
 
 
57
    File_button.menu.add_command(label='Open...', underline=0,
 
58
                                 command=open_file)
 
59
 
 
60
    File_button.menu.add_command(label='Quit', underline=0,
 
61
                                 command='exit')
 
62
 
 
63
    # set up a pointer from the file menubutton back to the file menu
 
64
    File_button['menu'] = File_button.menu
 
65
 
 
66
    return File_button
 
67
 
 
68
 
 
69
 
 
70
def makeEditMenu():
 
71
    Edit_button = Menubutton(mBar, text='Edit', underline=0)
 
72
    Edit_button.pack(side=LEFT, padx="1m")
 
73
    Edit_button.menu = Menu(Edit_button)
 
74
 
 
75
    # just to be cute, let's disable the undo option:
 
76
    Edit_button.menu.add('command', label="Undo")
 
77
    # Since the tear-off bar is the 0th entry,
 
78
    # undo is the 1st entry...
 
79
    Edit_button.menu.entryconfig(1, state=DISABLED)
 
80
 
 
81
    # and these are just for show. No "command" callbacks attached.
 
82
    Edit_button.menu.add_command(label="Cut")
 
83
    Edit_button.menu.add_command(label="Copy")
 
84
    Edit_button.menu.add_command(label="Paste")
 
85
 
 
86
    # set up a pointer from the file menubutton back to the file menu
 
87
    Edit_button['menu'] = Edit_button.menu
 
88
 
 
89
    return Edit_button
 
90
 
 
91
 
 
92
#################################################
 
93
 
 
94
#### Main starts here ...
 
95
root = Tk()
 
96
 
 
97
 
 
98
# make a menu bar
 
99
mBar = Frame(root, relief=RAISED, borderwidth=2)
 
100
mBar.pack(fill=X)
 
101
 
 
102
File_button = makeFileMenu()
 
103
Edit_button = makeEditMenu()
 
104
 
 
105
# finally, install the buttons in the menu bar.
 
106
# This allows for scanning from one menubutton to the next.
 
107
mBar.tk_menuBar(File_button, Edit_button)
 
108
 
 
109
root.title('menu demo')
 
110
root.iconname('packer')
 
111
 
 
112
root.mainloop()