菜单小部件用于在 Python 应用程序中创建各种类型的菜单(顶级、下拉和弹出)。

顶级菜单是显示在父窗口标题栏下方的菜单。我们需要创建一个 Menu 小部件的新实例,并使用 add() 方法向其添加各种命令。

使用 Menu 小部件的语法如下。

语法

w = Menu(top, options)   

以下是可能的选项列表。

序号选项描述
1activebackground小部件在焦点下时的背景颜色。
2activeborderwidth鼠标悬停在小部件上时小部件边框的宽度。默认为 1 像素。
3activeforeground小部件在焦点时的字体颜色。
4bg小部件的背景颜色。
5bd小部件的边框宽度。
6cursor当鼠标悬停在小部件上时,鼠标指针更改为箭头或点的光标类型。
7disabledforeground小部件被禁用时的字体颜色。
8font小部件文本的字体类型。
9fg小部件的前景颜色。
10postcommandpostcommand 可以设置为鼠标悬停在菜单上时调用的任何函数。
11relief小部件边框的类型。默认类型为 RAISED。
12image用于在菜单上显示图像。
13selectcolor当选中复选框或单选按钮时使用的颜色。
14tearoff默认情况下,菜单中的选项从位置 1 开始占据。如果我们将 tearoff 设置为 1,则它将从第 0 个位置开始占据。
15title如果要更改窗口标题,请将此选项设置为窗口的标题。

方法

Menu 小部件包含以下方法。

序号选项描述
1add_command(options)用于将菜单项添加到菜单中。
2add_radiobutton(options)此方法将单选按钮添加到菜单中。
3add_checkbutton(options)此方法用于向菜单中添加复选按钮。
4add_cascade(options)通过将给定菜单关联到父菜单,用于在父菜单中创建分层菜单。
5add_seperator()用于向菜单中添加分隔线。
6add(type, options)用于向菜单中添加特定菜单项。
7delete(startindex, endindex)用于删除指定范围内存在的菜单项。
8entryconfig(index, options)用于配置由给定索引标识的菜单项。
9index(item)用于获取指定菜单项的索引。
10insert_seperator(index)用于在指定索引处插入分隔线。
11invoke(index)用于调用指定索引处给定选项相关联的函数。
12type(index)用于获取由索引指定的选项的类型。

创建顶级菜单

可以通过实例化 Menu 小部件并向菜单添加菜单项来创建顶级菜单。

示例 1

# !/usr/bin/python3  
  
from tkinter import *  
  
top = Tk()  
  
def hello():  
    print("hello!")  
  
# create a toplevel menu  
menubar = Menu(root)  
menubar.add_command(label="Hello!", command=hello)  
menubar.add_command(label="Quit!", command=top.quit)  
  
# display the menu  
top.config(menu=menubar)  
  
top.mainloop()  

输出:

10-1.png

单击 "Hello!" 菜单按钮将在控制台上打印 "hello",而单击 "Quit!" 菜单按钮将从 Python 应用程序中退出。

示例 2

from tkinter import Toplevel, Button, Tk, Menu  
  
top = Tk()  
menubar = Menu(top)  
file = Menu(menubar, tearoff=0)  
file.add_command(label="New")  
file.add_command(label="Open")  
file.add_command(label="Save")  
file.add_command(label="Save as...")  
file.add_command(label="Close")  
  
file.add_separator()  
  
file.add_command(label="Exit", command=top.quit)  
  
menubar.add_cascade(label="File", menu=file)  
edit = Menu(menubar, tearoff=0)  
edit.add_command(label="Undo")  
  
edit.add_separator()  
  
edit.add_command(label="Cut")  
edit.add_command(label="Copy")  
edit.add_command(label="Paste")  
edit.add_command(label="Delete")  
edit.add_command(label="Select All")  
  
menubar.add_cascade(label="Edit", menu=edit)  
help = Menu(menubar, tearoff=0)  
help.add_command(label="About")  
menubar.add_cascade(label="Help", menu=help)  
  
top.config(menu=menubar)  
top.mainloop()  

输出:

10-2.png

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程