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

    示例结果

    正是江南好风景
  • 相关阅读:
    关于图片色彩位深度与颜色模式(待完善)
    Android 跨进程数据共享
    Android实现模拟表单上传
    Android数据库无缝升级方案
    Dagger2在Android开发中的应用
    Dagger2学习笔记
    Android开发随手记
    Android Shape Divider
    带你玩转java多线程系列 “道篇” 多线程的优势及利用util.concurrent包测试单核多核下多线程的效率
    带你玩转java多线程系列 二 Thread 和 Runnable
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12976602.html
Copyright © 2020-2023  润新知