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()

示例结果

posted @ 2020-05-27 21:08  小他_W  阅读(1050)  评论(0编辑  收藏  举报