Python 3 – Tkinter菜单

Python 3 – Tkinter菜单

该小部件的目的是让我们创建各种菜单,以供我们的应用程序使用。核心功能提供了创建三种菜单类型的方法:弹出式,顶层式和下拉式。

还可以使用其他扩展小部件来实现新类型的菜单,例如实现一个生成项目弹出列表选择的特殊类型的 OptionMenu 小部件。

语法

这是创建此小部件的简单语法 –

w = Menu (master,option,...)

参数

  • master - 这代表父窗口。

  • options - 这里是此小部件最常用选项的列表。可以使用逗号分隔的键值对作为这些选项。

编号 选项及说明
1 activebackground - 当选择按钮在鼠标下时,将出现的背景颜色。
2 activeborderwidth - 指定在鼠标下选择按钮周围绘制的边框宽度。默认值为1个像素。
3 activeforeground - 选择按钮在鼠标下时将出现的前景颜色。
4 bg - 当选择按钮不在鼠标下时的背景颜色。
5 bd - 所有选择按钮周围的边框宽度。默认值为1。
6 cursor - 当鼠标在选项上方时出现的光标,但只有当菜单被剥离时才出现。
7 disabledforeground - 状态为DISABLED的项目的文本颜色。
8 font - 文本选择的默认字体。
9 fg - 当选择按钮不在鼠标下时使用的前景颜色。
10 postcommand - 可以将此选项设置为过程,每次有人打开此菜单时,该过程将被调用。
11 relief - 菜单的默认三维效果为relief = RAISED。
12 image - 在此菜单按钮上显示图像。
13 selectcolor - 选择后显示的复选框和单选按钮的颜色。
14 tearoff - 通常情况下,菜单可以被撕下,选择列表中的第一个位置(位置0)被撕下的元素占用,并从位置1开始添加其他选择。如果设置tearoff = 0,则该菜单将没有撕下功能,并且选择将从位置0开始添加。
15 title - 通常,撕下菜单窗口的标题将与导致该菜单的menubutton或cascade的文本相同。如果您想更改该窗口的标题,将标题选项设置为该字符串。

方法

在菜单对象上可以使用这些方法 –

序号 选项及描述
1 add_command(options) 添加菜单项。
2 add_radiobutton(options) 创建单选按钮菜单项。
3 add_checkbutton(options) 创建复选框菜单项。
4 add_cascade(options) 通过将给定菜单与父菜单相关联,创建新的分层菜单。
5 add_separator() 将分隔符线添加到菜单中。
6 add(type, options) 添加指定类型的菜单项到菜单中。
7 delete(startindex [, endindex]) 删除从startindex到endindex范围内的菜单项。
8 entryconfig(index, options) 允许您修改通过索引标识的菜单项并更改其选项。
9 index(item) 返回给定菜单项标签的索引号。
10 insert_separator(index) 在由index指定的位置插入新的分隔符。
11 invoke(index) 调用与位置index处的选项相关联的命令回调函数。如果是复选框,则其状态在设置和清除之间切换;如果是单选框,则选择该选项。
12 type(index) 返回由索引指定的选择的类型:”cascade”,”checkbutton”,”command”,”radiobutton”,”separator”或”tearoff”。

示例

尝试自己运行以下示例 –

# !/usr/bin/python3
from tkinter import *
def donothing():
   filewin = Toplevel(root)
   button = Button(filewin, text="Do nothing button")
   button.pack()

root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff = 0)
filemenu.add_command(label="New", command = donothing)
filemenu.add_command(label = "Open", command = donothing)
filemenu.add_command(label = "Save", command = donothing)
filemenu.add_command(label = "Save as...", command = donothing)
filemenu.add_command(label = "Close", command = donothing)

filemenu.add_separator()

filemenu.add_command(label = "Exit", command = root.quit)
menubar.add_cascade(label = "File", menu = filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label = "Undo", command = donothing)

editmenu.add_separator()

editmenu.add_command(label = "Cut", command = donothing)
editmenu.add_command(label = "Copy", command = donothing)
editmenu.add_command(label = "Paste", command = donothing)
editmenu.add_command(label = "Delete", command = donothing)
editmenu.add_command(label = "Select All", command = donothing)

menubar.add_cascade(label = "Edit", menu = editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label = "Help Index", command = donothing)
helpmenu.add_command(label = "About...", command = donothing)
menubar.add_cascade(label = "Help", menu = helpmenu)

root.config(menu = menubar)
root.mainloop()

结果

当执行以上代码时,它会产生以下结果 –

Python 3 - Tkinter菜单

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程