只有主菜单没有二级菜单的例子:

  1. from tkinter import *
  2. root=Tk()
  3. root.wm_title('同济大学财务管理系统')
  4. menubar=Menu(root)#指定菜单实例的父窗口是root
  5. for item in ['文件','编辑','视图','关于']:
  6. menubar.add_command(label=item)
  7. root['menu']=menubar#指定主窗口的'menu'属性为刚刚创建的menubar
  8. root.mainloop()

主菜单携带子菜单的例子:

  1. from tkinter import *
  2. root=Tk()
  3. menubar=Menu(root)# it produces a menu instance
  4. fmenu=Menu(menubar)
  5. for item in ['新建','打开','保存','另存为']:
  6. fmenu.add_cascade(label=item)
  7. emenu=Menu(menubar)
  8. for item in ['复制','粘贴','剪切']:
  9. emenu.add_cascade(label=item)
  10. vmenu=Menu(menubar)
  11. for item in ['默认视图','新式视图']:
  12. vmenu.add_cascade(label=item)
  13. amenu=Menu(menubar)
  14. for item in ['版权信息','其他说明']:
  15. amenu.add_cascade(label=item)
  16. menubar.add_cascade(label='文件',menu=fmenu)
  17. menubar.add_cascade(label='编辑',menu=emenu)
  18. menubar.add_cascade(label='视图',menu=vmenu)
  19. menubar.add_cascade(label='关于',menu=amenu)
  20. root['menu']=menubar
  21. root.mainloop()

制作弹出式菜单的例子:

  1. from tkinter import *
  2. def xianshi():
  3. #global root
  4. x1=Label(root,text='I love China',background='blue')
  5. x1.pack()
  6. root=Tk()#制作一个盛所有窗口的容器
  7. menubar=Menu(root)#制作一个菜单实例
  8. for x in ['vb','c','java','php','c++']:
  9. menubar.add_command(label=x)
  10. menubar.add_command(label='python',command=xianshi)
  11. def pop(event):
  12. menubar.post(event.x_root,event.y_root)
  13. root.bind('<Button-3>',pop)
  14. root.mainloop()

带分割横线的二级菜单:

  1. from tkinter import *
  2. root=Tk()
  3. m=Menu(root)#创建一个菜单实例m,这个菜单实例依附在主窗口root上面。
  4. m2=Menu(m)#创建一个二级菜单实例,这个实例依附在菜单m上,因为Menu的参数是widget,它是一个窗
  5. #口,m也算是一个窗口了,只不过是菜单窗口。
  6. for item in ['python','perl','php','ruby']:
  7. m2.add_command(label=item)#菜单m2调用add_command方法,用来增加菜单项目标签
  8. m2.add_separator()#添加分割线,不需要任何参数
  9. for item in ['java','c++','c']:
  10. m2.add_command(label=item)#增加二级菜单项目标签
  11. m.add_cascade(label='语言',menu=m2)#给依附在root容器上的一级菜单m增加一个二级菜单
  12. root['menu']=m#给root增加菜单属性,让其拥有一级菜单
  13. root.mainloop()

增加复选按钮与单选按钮:

  1. from tkinter import *
  2. root=Tk()
  3. m=Menu(root)#创建一个菜单实例m,这个菜单实例依附在主窗口root上面。
  4. m2=Menu(m)#创建一个二级菜单实例,这个实例依附在菜单m上,因为Menu的参数是widget,它是一个窗
  5. #口,m也算是一个窗口了,只不过是菜单窗口。
  6. for item in ['python','perl','php','ruby']:
  7. m2.add_checkbutton(label=item)#菜单m2调用add_command方法,用来增加菜单项目标签,复选按钮
  8. m2.add_separator()#添加分割线,不需要任何参数
  9. for item in ['java','c++','c']:
  10. m2.add_radiobutton(label=item)#增加二级菜单项目标签,单选按钮
  11. m.add_cascade(label='语言',menu=m2)#给依附在root容器上的一级菜单m增加一个二级菜单
  12. root['menu']=m#给root增加菜单属性,让其拥有一级菜单
  13. root.mainloop()

python之menu的更多相关文章

  1. python Console menu

    I just finished a demo which is to provide an easy way to control hardware resources of A sample. Th ...

  2. Python Tkinter Menu

    本人想开发一个简易的搜图GUI,基于此,选择用Tkinter模块开发. 需要开发出菜单栏 1 from Tkinter import * 2 3 4 root = Tk() 5 root.title( ...

  3. python手记(9)

    本博客所有内容是原创,未经书面许可,严禁任何形式的转 http://blog.csdn.net/u010255642 tab #!/usr/bin/env python # example noteb ...

  4. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  5. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

    在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...

  6. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐

    在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...

  7. python--第十一天总结(paramiko 及数据库操作)

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器, ...

  8. 堡垒机(paramiko)

    实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表 用户选择服务器,并自动登陆 执行 ...

  9. VueUI -- iView4.0简单使用

    一.iView(View UI) 1.简介 官网:https://www.iviewui.com/ 仓库:https://github.com/view-design/ViewUI iView 与 V ...

随机推荐

  1. intent传值传对象跳转

    intent传值传对象跳转 1.传值 //原activity中存入一个字段 intent = new Intent(From.this, To.class); intent.putExtra(&quo ...

  2. 【Python数据分析】IPython快捷键

    命令                          说明 CTRL+P(或向上箭头)             后向搜索命令历史中以当前输入的文本开头的命令 CTRL+N(或向下箭头)        ...

  3. VueJS样式绑定v-bind:class

    class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性. Vue.js v-bind 在处理 class 和 style 时, 专门增强了它 ...

  4. linq查询去重

    通过自定义扩展方法DistinctBy实现去重 public static IEnumerable<TSource> DistinctBy<TSource, TKey> (th ...

  5. *Android 多线程下载 仿下载助手

    今天带来一个多线程下载的 样例.先看一下效果.点击 下载 開始下载,同一时候显示下载进度.完成下载,变成程 安装,点击安装 提示 安装应用. 界面效果 线程池 ThreadPoolExecutor , ...

  6. php程序执行过程--非宏观和微观而是写的程序一行一行的路径----利用xdebug了解一段程序的执行过程----覆盖率

    1.xdebug_start_code_coverage();//在需要开始跟踪程序执行路径时使用 2.var_dump(xdebug_get_code_coverage());//在结尾使用打印程序 ...

  7. vue proxyTable

    Vue-cli proxyTable 解决开发环境的跨域问题 字数474 阅读1685 评论1 喜欢3 和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆 ...

  8. 在命令行上启用 64 位 Visual C++ 工具集

    Visual C++ 包含可用于创建 apps 在 32 位上运行,64 位,或基于 ARM 的 windows 操作系统的编译器. 下面的列表描述了 cl.exe(Visual C++ 编译器)的各 ...

  9. WPF之DataTemplateSelector技巧

    WPF中如何通过一个属性来控制对象的模板,属性值改变时对象的模板会跟随改变? 两个关键点   1 属性/对象更改通知 方法一:继承INotifyPropertyChanged接口,当属性值更改时需要让 ...

  10. python跳坑手记

    解决python同目录报错:import util 改成 from . import util