Python Tkinter Menu菜单
Menu小部件用于在python应用程序中创建各种类型的菜单(顶级,下拉和弹出)。
顶级菜单是显示在父窗口标题栏下方的菜单。我们需要创建Menu小部件的新实例,并使用add()方法向其添加各种命令。
下面给出了使用Menu小部件的语法。
句法
w = Menu(top, options)
下面给出了可能的选项列表。
SN | 选项 | 说明 |
1 | activebackground | 窗口小部件在焦点下时窗口小部件的背景颜色。 |
2 | activeborderwidth | 小部件在鼠标下方时边框的宽度。默认值为1像素。 |
3 | activeforeground | 窗口小部件具有焦点时窗口小部件的字体颜色。 |
4 | bg | 小部件的背景颜色。 |
5 | bd | 小部件的边框宽度。 |
6 | cursor | 鼠标指针在悬停窗口小部件时更改为光标类型。光标类型可以设置为箭头或点。 |
7 | disabledforeground | 禁用时窗口小部件的字体颜色。 |
8 | font | 小部件文本的字体类型。 |
9 | fg | 小部件的前景色。 |
10 | postcommand | 命令可以设置为当mourse悬停菜单时调用的任何函数。 |
11 | relief | 窗口小部件的边框类型。默认类型为RAISED。 |
12 | image | 用于在菜单上显示图像。 |
13 | selectcolor | 用于在选中时显示checkbutton或radiobutton的颜色。 |
14 | tearoff | 默认情况下,菜单中的选项从位置1开始。如果我们设置撕裂= 1,那么它将从第0位开始。 |
15 | title | 如果要更改窗口标题,请将此选项设置为窗口标题。 |
方法
“菜单”窗口小部件包含以下方法。
SN | 选项 | 说明 |
1 | add_command(options) | 用于将菜单项添加到菜单中。 |
2 | add_radiobutton(options) | 此方法将radiobutton添加到菜单中。 |
3 | add_checkbutton(options) | 此方法用于将复选框添加到菜单中。 |
4 | add_cascade(options) | 用于通过将给定菜单与父菜单相关联来为父菜单创建分层菜单。 |
5 | add_seperator() | 用于将分隔线添加到菜单中。 |
6 | add(type,options) | 用于将特定菜单项添加到菜单中。 |
7 | delete(startindex,endindex) | 用于删除指定范围内存在的菜单项。 |
8 | entryconfig(index,options) | 它用于配置由给定索引标识的菜单项。 |
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 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()
输出: