python之menu
只有主菜单没有二级菜单的例子:
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的更多相关文章
- python Console menu
I just finished a demo which is to provide an easy way to control hardware resources of A sample. Th ...
- Python Tkinter Menu
本人想开发一个简易的搜图GUI,基于此,选择用Tkinter模块开发. 需要开发出菜单栏 1 from Tkinter import * 2 3 4 root = Tk() 5 root.title( ...
- python手记(9)
本博客所有内容是原创,未经书面许可,严禁任何形式的转 http://blog.csdn.net/u010255642 tab #!/usr/bin/env python # example noteb ...
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...
- python--第十一天总结(paramiko 及数据库操作)
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器, ...
- 堡垒机(paramiko)
实现思路 堡垒机执行流程: 管理员为用户在服务器上创建账号(将公钥放置服务器,或者使用用户名密码) 用户登陆堡垒机,输入堡垒机用户名密码,现实当前用户管理的服务器列表 用户选择服务器,并自动登陆 执行 ...
- VueUI -- iView4.0简单使用
一.iView(View UI) 1.简介 官网:https://www.iviewui.com/ 仓库:https://github.com/view-design/ViewUI iView 与 V ...
随机推荐
- AutoIt3常见问题解答
Q1 如何调试脚本? MsgBox(0,"测试",$var) ConsoleWrite("var=" & $var & @CRLF) Q2 ...
- VueJS字符串反转:String.reverse()
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- CPU_CState_PState and then ACPI on Wiki
http://wenku.baidu.com/link?url=eHbdT4EjdJx3dsQETGUIL8q1K3_EyuzGLWT0G103AEca0vs0gHR_v_3c0oaUL2gbkrr8 ...
- rtems 4.11 时钟驱动(arm, beagle)
根据bsp_howto手册,时钟驱动的框架主要在 c/src/lib/libbsp/shared/Clockdrv_shell.h 文件中实现 时钟初始化 时钟驱动初始化函数为 Clock_initi ...
- javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity pas ...
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
// 第一种方法 // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...
- 通过srvctl add命令添加database信息到srvctl管理器
================================================通过srvctl add命令添加database信息到srvctl管理器================ ...
- nstall-Package : 无法找到程序包“MySql.Data.Entity.EF6”
在vs2013中用MySQL+EF6时,会遇到版本的问题,解决方法一般如下: 1 Install-Package EntityFramework -Version 6.0.0然后Enter2 Inst ...
- 开始使用gradle
前提配置gradle环境 每个gradle构建都是以一个脚本开始的.gradle构建默认的名称为build.gradle.当在shell中执行gradle命令时,gradle会去寻找为build.gr ...
- mac svn命令行使用入门
本文转载至 http://blog.sina.com.cn/s/blog_6bfa2fc10101euf6.html mac svn命令行使用入门 1. 初始化项目 svn import /Use ...