GUI tkinter (Menu) -下拉菜单
添加顶层菜单
1、我们可以使用Menu类来新建一个菜单,Menu和其他的组件一样,第一个是parent,这里通常可以为窗口。
2、然后我们可以用add_command方法来为它添加菜单项,
a.如果该菜单是顶层菜单,则添加的菜单项依次向右添加。
b.如果该菜单是顶层菜单的一个菜单项,则它添加的是下拉菜单的菜单项。
3、add_command 中的参数常用的有 label 属性,用来指定的 是菜单项的名称,command 属性用来指定被点击的时候调用的方法,acceletor 属性指定的是快捷键,underline 属性是是否拥有下划线。
4、最后可以用窗口的 menu 属性指定我们使用哪一个作为它的顶层菜单。
存在子菜单
1、需要使用 add_cascade,cascade 可以理解为“级联”,即它的作用只是为了引出后面的菜单。
2、add_cascade 的一个很重要的属性就是 menu 属性,它指明了要把那个菜单级联到该菜单项上,当然,还必不可少 的就是 label 属性,用于指定该菜单项的名称。
3、我们先新建一个 Menu 的实例,然后使用 add_command 来 添加菜单项,这样等该菜单建立完毕,我们要把它作为另一个菜单项的子菜单,就需要使用 add_cascade 方法。
示例代码
from tkinter import *
root = Tk()
root.wm_title("菜单")
root.geometry("400x300+300+100")
# 创建一个顶级菜单实例
menubar = Menu(root)
"""
for item in ['文件','编辑','视图','关于']:
menubar.add_command(label=item)
"""
fmenu = Menu(menubar) # 在 menubar菜单实例上建立新的子菜单实例
for item in ['新建','打开','保存','另存为']:
fmenu.add_command(label = item)
emenu = Menu(menubar) # 在 menubar菜单实例上建立新的子菜单实例
for item in ['复制','粘贴','剪切']:
emenu.add_command(label = item)
vmenu = Menu(menubar) # 在 menubar菜单实例上建立新的子菜单实例
for item in ['默认视图','新式视图']:
vmenu.add_command(label = item)
amenu = Menu(menubar) # 在 menubar菜单实例上建立新的子菜单实例
for item in ['版权信息','其他说明']:
amenu.add_command(label = item)
# 在 menubar 上设置子菜单名,并关联一系列子菜单
menubar.add_cascade(label = "文件",menu = fmenu)
menubar.add_cascade(label = "编辑",menu = emenu)
menubar.add_cascade(label = "视图",menu = vmenu)
menubar.add_cascade(label = "关于",menu = amenu)
# 显示菜单
root.config(menu = menubar) # 将root根窗口的顶级菜单设置为menu
# root['menu'] = menubar ,两种方式均可
mainloop()
示例结果
正是江南好风景