本文概述

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

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

下面给出了使用菜单小部件的语法。

句法

w = Menu(top, options)

下面列出了可能的选项。

SN

Option

Description

1

activebackground

当小部件位于焦点下方时, 小部件的背景颜色。

2

activeborderwidth

小部件位于鼠标下方时边框的宽度。默认值为1像素。

3

activeforeground

当小部件具有焦点时, 小部件的字体颜色。

4

bg

小部件的背景颜色。

5

bd

小部件的边框宽度。

6

cursor

当鼠标指针悬停在小部件上时, 它会更改为光标类型。光标类型可以设置为箭头或点。

7

disabledforeground

禁用时的小部件的字体颜色。

8

font

小部件文本的字体类型。

9

fg

小部件的前景色。

10

postcommand

可以将后命令设置为当鼠标悬停菜单时调用的任何函数。

11

relief

小部件的边框类型。默认类型为RAISED。

12

image

它用于在菜单上显示图像。

13

selectcolor

选择它们时用于显示复选按钮或单选按钮的颜色。

14

tearoff

默认情况下, 菜单中的选择从位置1开始。如果将撕裂设置为1, 则它将从第0位置开始。

15

title

如果要更改窗口标题, 请将此选项设置为窗口标题。

方法

菜单小部件包含以下方法。

SN

Option

Description

1

add_command(options)

用于将菜单项添加到菜单。

2

add_radiobutton(options)

此方法将单选按钮添加到菜单。

3

add_checkbutton(options)

此方法用于将复选按钮添加到菜单。

4

add_cascade(options)

通过将给定菜单与父菜单相关联, 可用于创建父菜单的分层菜单。

5

add_seperator()

用于将分隔线添加到菜单。

6

添加(类型, 选项)

用于将特定菜单项添加到菜单。

7

删除(startindex, endindex)

用于删除指定范围内存在的菜单项。

8

entryconfig(索引, 选项)

它用于配置由给定索引标识的菜单项。

9

index(item)

它用于获取指定菜单项的索引。

10

insert_seperator(index)

用于在指定的索引处插入分隔符。

11

invoke(index)

它用于调用与在指定索引处给定的选择相关联。

12

type(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()

输出

单击hello Menu按钮将在控制台上打印hello, 而单击Quit Menu按钮将退出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()

输出