内容正文:
《Python应用程序设计》
GUI之Menu
计算机教科组
1
Menu组件
发音:英[ˈmenjuː]
Menu(菜单)组件用于实现顶级菜单、下拉菜单和弹出菜单
Menu组件中各参数及其含义
参数 含义
tearoff 1. 默认情况下菜单可以被“撕下”
2. 将该选项设置为 False 关闭这一特性
state 1. 指定菜单的状态
2. 默认值是 "normal",还可以设置 "active" 或 "disabled"(完全禁止)
command 菜单关联的函数,当按钮被点击时,执行该函数
Menu组件方法
add_command():添加一个普通的命令菜单项
add_cascade():将给定的菜单与父菜单相关联,创建一个新的分层菜单
add_separator() :添加一条分割线
add_radiobutton():添加一个单选按钮的菜单项
add_checkbutton():添加一个多选按钮的菜单项
Menu组件方法
insert(index, itemType, **options)
-- 插入指定类型的菜单项到 index 参数指定的位置
-- itemType 参数指定添加的菜单类型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"
delete(index1, index2=None)
-- 删除 index1 ~ index2(包含)的所有菜单项
-- 如果忽略 index2 参数,则删除 index1 指向的菜单项
-- 注意:对于一个被“撕下”的菜单,你无法使用该方法
type(index)
-- 获得 index 参数指定菜单项的类型
-- 返回值可以是:"command","cascade","checkbutton","radiobutton" 或 "separator"
unpost(): 移除弹出菜单
Menu组件方法
-- 还可以通过 options 选项设置菜单的属性,下面列举了 options 可以使用的选项和具体含义:
label:指定菜单项显示的文本
menu:
1. 该选项仅在 cascade 类型的菜单中使用
2. 用于指定它的下级菜单
Menu 组件:父菜单
import tkinter as tk
root = tk.Tk()
def callback():
print("~被调用啦~")
#创建一个顶级菜单
menubar = tk.Menu(root)
menubar.add_command(label = "Hello", command = callback)
menubar.add_command(label = "Quit", command = root.quit)
#显示菜单
root.config(menu = menubar)
root.mainloop()
Menu 组件:父菜单
import tkinter as tk
win = tk.Tk()
m=tk.Menu(win)
for i in ['File','View','Edit','Tools','Help']:
m.add_command(label=i)
win.config(menu=m)
win.mainloop()
Menu 组件:父菜单
import tkinter as tk
root = tk.Tk()
def callback():
print("~被调用了~")
# 创建一个顶级菜单
menubar = tk.Menu(root)
# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打开", command=callback)
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
# 创建另一个下拉菜单“编辑”,然后将它添加到顶级菜单中
editmenu = tk.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=callback)
editmenu.add