Python Tkinter Menu菜单


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

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

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

句法

w = Menu(top, options)

下面给出了可能的选项列表。

SN
选项
说明
1activebackground
窗口小部件在焦点下时窗口小部件的背景颜色。
2activeborderwidth
小部件在鼠标下方时边框的宽度。默认值为1像素。
3activeforeground
窗口小部件具有焦点时窗口小部件的字体颜色。
4bg
小部件的背景颜色。
5bd
小部件的边框宽度。
6cursor鼠标指针在悬停窗口小部件时更改为光标类型。光标类型可以设置为箭头或点。
7disabledforeground
禁用时窗口小部件的字体颜色。
8font
小部件文本的字体类型。
9fg
小部件的前景色。
10postcommand
命令可以设置为当mourse悬停菜单时调用的任何函数。
11relief
窗口小部件的边框类型。默认类型为RAISED。
12image用于在菜单上显示图像。
13selectcolor
用于在选中时显示checkbutton或radiobutton的颜色。
14tearoff默认情况下,菜单中的选项从位置1开始。如果我们设置撕裂= 1,那么它将从第0位开始。
15title
如果要更改窗口标题,请将此选项设置为窗口标题。


方法

“菜单”窗口小部件包含以下方法。

SN
选项
说明
1add_command(options)
用于将菜单项添加到菜单中。
2add_radiobutton(options)
此方法将radiobutton添加到菜单中。
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()

输出:

360截图1761061292104120.png

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

输出:

python-tkinter-menu-output2.png