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

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

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

from tkinter import *
root=Tk()
menubar=Menu(root)# it produces a menu instance
fmenu=Menu(menubar)
for item in ['新建','打开','保存','另存为']:
fmenu.add_cascade(label=item)
emenu=Menu(menubar)
for item in ['复制','粘贴','剪切']:
emenu.add_cascade(label=item)
vmenu=Menu(menubar)
for item in ['默认视图','新式视图']:
vmenu.add_cascade(label=item)
amenu=Menu(menubar)
for item in ['版权信息','其他说明']:
amenu.add_cascade(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)
root['menu']=menubar
root.mainloop()

制作弹出式菜单的例子:

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

带分割横线的二级菜单:

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

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

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

    1 运行文字命令(这里使用单行文字),然后鼠标点击文字的起始点,如图所示   2 鼠标分别向上和向右移动一定距离,表示文字的高度(文字的大小)和文字的旋转角度(一般向右,因为是水平文字)   3 最后 ...

  2. 红米note3刷安卓原生

    http://www.romzj.com/rom/63404.htm#comments-version 然后在系统设置里升级系统, http://www.lineageosdownloads.com/ ...

  3. java监控工具jstatd-windows

    Monitors Java Virtual Machines (JVMs) and enables remote monitoring tools to attach to JVMs. This co ...

  4. js:"use strict"; 严格模式

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

  5. js向后台传递对象

    js: }; $.ajax({ url: "/.../...", type: "POST", async: false, data: JSON.stringif ...

  6. QTreeWidget 的用法

    Qt QTreeWidget 新建一个Qt Widgets Application,拖拽一个Tree Widget 到 ui 界面上,最后实现的效果如下: 添加代码 //test.h //在头文件里添 ...

  7. Java 8 Collectors to Map

    1. 介绍 在本教程中,我们将讨论Collectors类的toMap()方法.我们使用它将流收集到一个Map实例中. 对于本教程中涉及的所有示例,我们将使用图书列表作为数据源,并将其转换为不同的Map ...

  8. 1-2:CSS3课程入门之结构选择

    E:nth-child(n) 表示E父元素中的第n个字节点 p:nth-child(odd){background:red}/*匹配奇数行*/ p:nth-child(even){background ...

  9. Array容易被忽略的join

    var lists, items = '', i; lists = [{ Fruits:'苹果' },{ Fruits:'香蕉' },{ Fruits:'菠萝' }]; /*items += '< ...

  10. Erlang 在erlang项目中使用protobuf

    protobuf是google的一个序列化框架,类似XML,JSON,其特点是基于二进制,比XML表示同样一段内容要短小得多,还可以定义一些可选字段,广泛用于服务端与客户端通信.文章将着重介绍在erl ...