Python Tkinter 菜单

Python Tkinter 菜单

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 当鼠标悬停在菜单上时,postcommand可以设置为任何调用的函数。
11 relief 小部件的边框类型。默认类型为RAISED。
12 image 用于在菜单上显示图像。
13 selectcolor 在选择复选框或单选按钮时用于显示的颜色。
14 tearoff 默认情况下,菜单中的选项从位置1开始。如果我们设置tearoff = 1,则会从第0个位置开始。
15 title 如果要更改窗口的标题,将此选项设置为窗口的标题。

方法

Menu小部件包含以下方法。

序号 选项 描述
1 add_command(options) 用于向菜单添加菜单项。
2 add_radiobutton(options) 此方法将单选按钮添加到菜单中。
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) 用于激活指定索引处的choice。
12 type(index) 用于获取由索引指定的choice的类型。

创建顶级菜单

可以通过实例化 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()

输出:

Python Tkinter 菜单

点击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 菜单

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程