Tkinter入门
前页 | 第八章. 应用窗口 | 后页

# 菜单

Tkinter 为菜单提供了一个特殊的组件.我们通过创建一个`Menu`类的实例来构造一个菜单,然后使用add方法来为它添加条目:

- `add_command(label=string, command=callback)` 添加一个菜单条.

- `add_separator()` 添加一个分隔符. 它可以被用来将菜单条分组.

- `add_cascade(label=string, menu=menu instance)` 添加一个子菜单 (另外的 `Menu` 实例). 根据父组件类型,它会显示为下拉菜单或层叠菜单两种形式.

下面是个范例:

范例 8-1. 创建一个小菜单

    # File: menu1.py

    from Tkinter import *

    def callback():
        print "调用回调函数!"

    root = Tk()

    # 创建一个菜单
    menu = Menu(root)
    root.config(menu=menu)

    filemenu = Menu(menu)
    menu.add_cascade(label="File", menu=filemenu)
    filemenu.add_command(label="New", command=callback)
    filemenu.add_command(label="Open...", command=callback)
    filemenu.add_separator()
    filemenu.add_command(label="Exit", command=callback)

    helpmenu = Menu(menu)
    menu.add_cascade(label="Help", menu=helpmenu)
    helpmenu.add_command(label="About...", command=callback)

    mainloop()

在这个例子里,我们首先创建了一个`Menu`实例, 然后我们使用`config`方法将它整合到root窗口中.你不需要绑定(pack)这个菜单,它会自动被Tkinter显示出来.

下一步,我们使用原先创建的菜单实例(menu)创建一个新的`Menu`实例(filemenu), 再用 `add_cascade` 方法建立一个下拉菜单. 然后我们使用 `add_command` 来为子菜单添加一个命令 (注意,在这个例子里命令都被称为 callback), 和 `add_separator` 添加每个命令之间的分隔.

最后,根据习惯我们创建了一个简单的帮助菜单.

前页 | 首页 | 后页
应用窗口 | 向上 | 工具条