python] view plain copy
'''''Tkinter教程之Menu篇'''
'''''1.创建一个简单的Menu'''
# 添加菜单hello和quit,将hello菜单与hello函数绑定;quit菜单与root.quit绑定
# -*- coding: utf-8 -*-
from tkinter import * root = Tk() def hello():
print('hello menu') menubar = Menu(root)
# 创建主菜单,每个菜单对应的回调函数都是hello
for item in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']:
menubar.add_command(label=item, command=hello)
# 将root的menu属性设置为menubar
root['menu'] = menubar
root.mainloop()
# 这个菜单没有下拉菜单,仅包含两个菜单项 [python] view plain copy
'''''2.添加下拉菜单'''
from tkinter import * root = Tk() def hello():
print('hello menu') menubar = Menu(root) filemenu = Menu(menubar, tearoff=0)
for item in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']:
filemenu.add_command(label=item, command=hello)
# 将menubar的menu属性指定为filemenu,即filemenu为menubar的下拉菜单
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop() [python] view plain copy
'''''3.向菜单中添加Checkbutton项'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk() # 每次打印出各个变量的当前值
def printItem():
print('Python = ', vPython.get())
print('PHP = ', vPHP.get())
print('CPP = ', vCPP.get())
print('C = ', vC.get())
print('Java = ', vJava.get())
print('JavaScript = ', vJavaScript.get())
print('VBScript = ', vVBScript.get()) menubar = Menu(root) vPython = StringVar()
vPHP = StringVar()
vCPP = StringVar()
vC = StringVar()
vJava = StringVar()
vJavaScript = StringVar()
vVBScript = StringVar() filemenu = Menu(menubar, tearoff=0)
for k, v in {'Python': vPython,
'PHP': vPHP,
'CPP': vCPP,
'C': vC,
'Java': vJava,
'JavaScript': vJavaScript,
'VBScript': vVBScript}.items():
# 绑定变量与回调函数
filemenu.add_checkbutton(label=k, command=printItem, variable=v)
# 将menubar的menu属性指定为filemenu,即filemenu为menubar的下拉菜单
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 程序运行,使用了Checkbutton,并通过printItem将每个Checkbutton在当前值打印出来。 [python] view plain copy
'''''4.向菜单 中添加Radiobutton项'''
# -*- coding: utf8 -*-
from tkinter import * root = Tk() menubar = Menu(root)
vLang = StringVar() # 每次打印出当前选中的语言
def printItem():
print('vLang = ', vLang.get()) filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']:
# 绑定变量与回调函数,指定的变量vLang将这几项划为一组
filemenu.add_radiobutton(label=k, command=printItem, variable=vLang)
# 将menubar的menu属性指定为filemenu,即filemenu为menubar的下拉菜单
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 程序每次打印出当前选中的语言
# 与Checkbutton不同的是,同一个组内只有一个处于选中状态。 [python] view plain copy
'''''5.向菜单中添加分隔符'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) # 每次打印出当前选中的语言
def printItem():
print('add_separator') filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']:
filemenu.add_command(label=k, command=printItem)
# 将各个菜单项使用分隔符隔开
filemenu.add_separator()
menubar.add_cascade(label='Language', menu=filemenu)
root['menu'] = menubar
root.mainloop()
# 分隔符将相关的菜单项进行分组,只是UI上的实现,程序上没有任何改变,它也不执行任何的命令 [python] view plain copy
''''' 6.将以上的例5中的菜单改为右击弹出菜单'''
# 方法是通过绑定鼠标右键,每当点击时弹出这个菜单,去掉与root的关联
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) def printItem():
print('popup menu') filemenu = Menu(menubar, tearoff=0)
for k in ['Python', 'PHP', 'CPP', 'C', 'Java', 'JavaScript', 'VBScript']:
filemenu.add_command(label=k, command=printItem)
filemenu.add_separator()
menubar.add_cascade(label='Language', menu=filemenu) # 此时就不要将root的menu设置为menubar了
# root['menu'] = menubar
def popup(event):
# 显示菜单
menubar.post(event.x_root, event.y_root) # 在这里相应鼠标的右键事件,右击时调用popup,此时与菜单绑定的是root,可以设置为其它的控件,在绑定的控件上右击就可以弹出菜单
root.bind('<Button-3>', popup)
root.mainloop()
# 运行测试一个,可以看到各个菜单 项的功能都是可以使用的,所以弹出菜单与一般的菜单功能是一样的,只是弹出的方式不同而已。 [python] view plain copy
''''' 7.以下的代码演示了菜单项的操作方法,包括添加各种菜单项,删除一个或多个菜单项'''
# -*- coding: utf-8 -*-
from tkinter import * root = Tk()
menubar = Menu(root) def printItem():
print('add_separator') filemenu = Menu(menubar, tearoff=0)
for k in range(5):
filemenu.add_command(label=str(k), command=printItem)
menubar.add_cascade(label='Language', menu=filemenu) '''''以下为向菜单中添加项的操作'''
# 在索引1添加一菜单command项
filemenu.insert_command(1, label='', command=printItem)
# 在索引2添加一菜单checkbutton项
filemenu.insert_checkbutton(2, label='', command=printItem)
# 在索引3添加一菜单radiobutton项
filemenu.insert_radiobutton(3, label='', command=printItem)
# 将新添加的菜单项使用分隔符隔开
filemenu.insert_separator(1)
filemenu.insert_separator(5) '''''以下为删除菜单项的操作'''
# 删除索引6-9的菜单项
filemenu.delete(6, 9)
# 删除索引为0的菜单项
filemenu.delete(0) root['menu'] = menubar
root.mainloop()
# 分隔符将相关的菜单项进行分组,只是UI上的实现,程序上没有任何改变,它也不执行任何的命令

tkinter menu的更多相关文章

  1. Tkinter Menu(菜单)

      Tkinter Menu: 这个小工具的目标是,让我们来创建我们的应用程序,可以通过使用各种菜单.核心功能,提供的方式来创建三个菜单类型:弹出式,顶层,和下拉   这个小工具的目标是,让我们来创建 ...

  2. GUI tkinter (Menu)菜单项篇

    """添加顶层菜单:1.我们可以使用Menu类来新建一个菜单,Menu和其他的组件一样,第一个是parent,这里通常可以为窗口2.然后我们可以用add_command方 ...

  3. Python Tkinter Menu

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

  4. tkinter中menu菜单控件(十二)

    menu菜单控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200 ...

  5. 基于tkinter的GUI编程

    tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现的,它是Python标准库的一部分,所以使用它 ...

  6. tkinter python(图形开发界面)

    Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...

  7. Python GUI - tkinter

    目录: Tkinter 组件 标准属性 几何管理 代码实例: 1. Label & Button 2. Entry & Text 3.Listbox列表 4.Radiobutton单选 ...

  8. Python -- Gui编程 -- Tkinter的使用 -- 菜单与画布

    1.菜单 tkMenu.py import tkinter root = tkinter.Tk() menu = tkinter.Menu(root) submenu = tkinter.Menu(m ...

  9. gui - tkinter 开发

    GUI 用户交互界面 tkinter 介绍 tkinter python自带的gui库,对图形图像处理库tk的封装 其他gui:pythonwin,wxpython,pyQT.. 概念介绍 组件:组成 ...

随机推荐

  1. 【java】函数重载

    重载概念(Overloading): 在同一个类中,允许存在一个以上的同名函数,主要他们的参数个数和参数类型不同即可 重载特点: 与返回值无关,只和参数类型和参数个数有关系(重载只和参数列表有关系) ...

  2. HMM(隐马尔科夫模型)与分词、词性标注、命名实体识别

    转载自 http://www.cnblogs.com/skyme/p/4651331.html HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型,举一个经典的例子:一个东京的朋友每天根据天气{ ...

  3. Django--ORM--模型增删改查--备忘

    以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact.icontains.istartswith.iendswith.insert into tb_bookinfo()valu ...

  4. eclipse 修改 项目的git地址

    在项目的隐藏目录.git 文件夹下面 修改config配置文件 [core] symlinks = false repositoryformatversion = 0 filemode = false ...

  5. STL进阶--vector vs deque

    vector class Dog; // 例 1: vector<Dog> vec(6); // vec.capacity() == 6, vec.size() == 6, // 默认构造 ...

  6. 结构方程软件Lisrel 8.7 和HLM5.5

    这是我亲自使用过的软件,其中lisrel是破解版的,HLM是学生版的 下载地址:http://pan.baidu.com/s/1bnfCOrH

  7. python函数 传参的多种方式 解读

    1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2.带参数的函数调用: 函数定义了参数,那么 ...

  8. Java学习——使用final修饰符

    package Pack1; import java.awt.*; import java.applet.*; class ca { static int n = 20; final int nn; ...

  9. 学习笔记之Microsoft Office 365

    云办公确实很方便. Office 365 登录 | Microsoft Office https://www.office.com/ Office 365 - Wikipedia https://en ...

  10. solusvm安装过程

    openvz solusvm ** Testing connectivity PING solusvm.com (69.168.233.94) 56(84) bytes of data. 64 byt ...