菜单的分类也较多,通常可以分为下拉菜单、弹出菜单等。
添加顶层菜单
1. 使⽤ Menu 类来新建⼀个菜单, Menu 和其他的组件⼀样,第⼀个是parent ,这⾥通常可以为窗⼝
-
可以⽤ add_commmand ⽅法来为它添加菜单项, 如果该菜单是顶层菜单,则添加的菜单项依次向右添加。 如果该菜单时顶层菜单的⼀个菜单项,则它添加的是下拉菜单的菜单项。
-
add_command 中的参数常⽤的有 label 属性,⽤来指定的是菜单项的名称, command属性⽤来指定被点击的时候调⽤ 的⽅法, acceletor 属性指定的是快捷键, underline 属性是是否拥有下划线。
-
可以⽤窗⼝的 menu 属性指定我们使⽤哪⼀个作为它 的顶层菜单。
有⼦菜单的情况
- 使⽤ add_cascade ,cascade 可以理解为“级联”,即它 的作⽤只是为了引出后⾯的菜单。
2.add_cascade 的⼀个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,当然,还必不可少 的就是 label 属性,⽤于指定该菜单项的名称。
测试代码如下:
from tkinterimport *
wnd = Tk()
menuBar = Menu(wnd)
fMenu = Menu(menuBar)
for item in ["新建", "打开", "保存", "另存为", "退出"]:
fMenu.add_command(label=item)
eMenu = Menu(menuBar)
for item in ["复制", "粘贴", "剪切", "撤销"]:
eMenu.add_command(label=item)
vMenu = Menu(menuBar)
for item in ["默认视图", "全局视图", "显示/隐藏菜单"]:
vMenu.add_command(label=item)
aMenu = Menu(menuBar)
for item in ["版本信息", "帮助文档"]:
aMenu.add_command(label=item)
menuBar.add_cascade(label="文件", menu=fMenu)
menuBar.add_cascade(label="编辑", menu=eMenu)
menuBar.add_cascade(label="视图", menu=vMenu)
menuBar.add_cascade(label="关于", menu=aMenu)
wnd["menu"] = menuBar
wnd.mainloop()
注意的是我们可以先把⼦菜单做好,然后再做上层菜单
运行效果:
文件菜单以及子菜单
编辑带单以及子菜单
视图菜单以及子菜单
关于菜单以及子菜单
上述只是UI的设计,并没有涉及菜单执行功能。