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. DOM confirm setTimeout url刷新

    console.log 输出框 alert 弹出框 confirm 确认框 // URL和刷新 location.href 获取URL location.href = "url" ...

  2. qt编程

    http://www.zhihu.com/question/20054048 http://www.cnblogs.com/luoshupeng/archive/2011/05/01/2033743. ...

  3. sql Find_IN_SET 用法

    字段以 1,2,3,4 格式存储的SELECT * from test where FIND_IN_SET('15',btype) GROUP_CONCAT + group_by

  4. a:hover应用精粹

    原本想把题目叫做“纯CSS相册2”的,但在实现过程中试验了许多东西,干脆全部写出来分享了.大家知道,能兼容IE6的具有动态切换能力的CSS属性也只有hover伪类了,但hover伪类在IE仅对链接生效 ...

  5. 解除IE锁定主页批处理

    解除IE锁定主页.bat rem 解除IE锁定主页@echo offecho HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main [ ...

  6. LeetCode——5.Longest Palindromic Substring

    一.题目链接:https://leetcode.com/problems/longest-palindromic-substring/ 二.题目大意: 给定一个字符串,找出它最长的回文子串.例如,字符 ...

  7. C++11--编译器生成的函数

    using namespace std; class Dog {}; /* C++ 03 * 1 默认构造函数(只有当用户没有声明任何构造函数) * 2 拷贝构造(只有当用户没有声明5,6),扩展到C ...

  8. Lzma(7-zip)和zlib

    Lzma(7-zip) 使用: 在C目录中有算法文件,进入Util\LzmaLib目录,编译生成LIB库,导出了以下两函数,LzmaCompress 为压缩函数,LzmaUncompress 为解压缩 ...

  9. redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)

    平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 Red ...

  10. cnn进行端到端的验证码识别改进

    keras_cnn.py 训练及建模 #!/usr/bin/env python # coding=utf- """ 利用keras cnn进行端到端的验证码识别, 简单 ...