扫码一下
查看教程更方便
Python Tkinter Menu控件 允许我们创建可供我们的应用程序使用的各种菜单。核心功能提供了创建三种菜单类型的方法:弹出菜单、顶层菜单和下拉菜单。
还可以使用其他扩展小控件来实现新类型的菜单,例如OptionMenu,它实现了一种特殊类型,可在选择中生成项目的弹出列表。
这是创建此控件的简单语法 -
w = Menu ( master, option, ... )
序号 | 选项 | 描述 |
---|---|---|
1 | activebackground | 选择项位于鼠标下方时将显示在其上的背景颜色。 |
2 | activeborderwidth | 指定在鼠标下方时围绕选项绘制的边框的宽度。默认值为 1 像素。 |
3 | activeforeground | 当它位于鼠标下方时将出现在选择上的前景色。 |
4 | bg | 不在鼠标下方的选择的背景颜色。 |
5 | bd | 所有选项周围的边框宽度。默认值为 1。 |
6 | cursor | 当鼠标悬停在选项上时出现的光标,但仅当菜单被展开时才会出现。 |
7 | disabledforeground | 状态为 DISABLED 的项目的文本颜色。 |
8 | font | 文本选择的默认字体。 |
9 | fg | 用于不在鼠标下方的选择的前景色。 |
10 | postcommand | 您可以将此选项设置为一个过程,每次有人调出此菜单时都会调用该过程。 |
11 | relief | 菜单的默认 3-D 效果是浮雕=RAISED。 |
12 | image | 在此菜单按钮上显示图像。 |
13 | selectcolor | 指定选中按钮和单选按钮时显示的颜色。 |
14 | tearoff | 通常情况下,一个菜单可以被 “撕掉”,选择列表中的第一个位置(位置0)被tear-off元素占据,额外的选择从位置1开始添加。如果设置tearoff=0,菜单将没有撕下功能,并且将从位置 0 开始添加选项。 |
15 | title | 通常,可展开的菜单窗口的标题将与指向该菜单的菜单按钮或级联的文本相同。如果要更改该窗口的标题,请将标题选项设置为该字符串。 |
这些方法可用于 Menu 对象
序号 | 选项 | 描述 |
---|---|---|
1 | add_command (options) | 将菜单项添加到菜单中。 |
2 | add_radiobutton(options) | 创建一个单选按钮菜单项。 |
3 | add_checkbutton(options) | 创建一个复选按钮菜单项。 |
4 | add_cascade(options) | 通过将给定菜单与父菜单相关联来创建新的分层菜单 |
5 | add_separator() | 向菜单添加分隔线。 |
6 | add( type, options) | 将特定类型的菜单项添加到菜单中。 |
7 | delete( startindex [, endindex ]) | 删除从 startindex 到 endindex 的菜单项。 |
8 | entryconfig(index, options) | 允许您修改由索引标识的菜单项,并更改其选项。 |
9 | index(item) | 返回给定菜单项标签的索引号。 |
10 | insert_separator (index) | 在索引指定的位置插入新的分隔符。 |
11 | invoke (index) | 调用与位置索引处的选择关联的命令回调。如果是一个复选按钮,它的状态在设置和清除之间切换;如果是单选按钮,则设置该选项。 |
12 | type (index) | 返回由索引指定的选项类型:“cascade”、“checkbutton”、“command”、“radiobutton”、“separator”或“tearoff”。 |
from Tkinter import *
def donothing():
filewin = Toplevel(root)
button = Button(filewin, text="Do nothing button")
button.pack()
root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
editmenu.add_separator()
editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
执行上述代码时,会产生以下结果