Python Tkinter Menu

返回 Python GUI 编程


描述

Python Tkinter Menu控件 允许我们创建可供我们的应用程序使用的各种菜单。核心功能提供了创建三种菜单类型的方法:弹出菜单、顶层菜单和下拉菜单。

还可以使用其他扩展小控件来实现新类型的菜单,例如OptionMenu,它实现了一种特殊类型,可在选择中生成项目的弹出列表。


语法

这是创建此控件的简单语法 -

w = Menu ( master, option, ... )

参数

  • master - 这代表父窗口。
  • options - 这是此小部件最常用的选项列表。这些选项可以用作以逗号分隔的键值对。
序号 选项 描述
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()

执行上述代码时,会产生以下结果

tkinter menu


返回 Python GUI 编程

查看笔记

扫码一下
查看教程更方便