tkinter menu
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的更多相关文章
- Tkinter Menu(菜单)
Tkinter Menu: 这个小工具的目标是,让我们来创建我们的应用程序,可以通过使用各种菜单.核心功能,提供的方式来创建三个菜单类型:弹出式,顶层,和下拉 这个小工具的目标是,让我们来创建 ...
- GUI tkinter (Menu)菜单项篇
"""添加顶层菜单:1.我们可以使用Menu类来新建一个菜单,Menu和其他的组件一样,第一个是parent,这里通常可以为窗口2.然后我们可以用add_command方 ...
- Python Tkinter Menu
本人想开发一个简易的搜图GUI,基于此,选择用Tkinter模块开发. 需要开发出菜单栏 1 from Tkinter import * 2 3 4 root = Tk() 5 root.title( ...
- tkinter中menu菜单控件(十二)
menu菜单控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200 ...
- 基于tkinter的GUI编程
tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现的,它是Python标准库的一部分,所以使用它 ...
- tkinter python(图形开发界面)
Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macinto ...
- Python GUI - tkinter
目录: Tkinter 组件 标准属性 几何管理 代码实例: 1. Label & Button 2. Entry & Text 3.Listbox列表 4.Radiobutton单选 ...
- Python -- Gui编程 -- Tkinter的使用 -- 菜单与画布
1.菜单 tkMenu.py import tkinter root = tkinter.Tk() menu = tkinter.Menu(root) submenu = tkinter.Menu(m ...
- gui - tkinter 开发
GUI 用户交互界面 tkinter 介绍 tkinter python自带的gui库,对图形图像处理库tk的封装 其他gui:pythonwin,wxpython,pyQT.. 概念介绍 组件:组成 ...
随机推荐
- python doc
http://blog.51cto.com/lizhenliang/category16.html
- intellij idea 快捷输出 main方法的规律
今天偶然发现了IntelliJ中 创建main函数的快捷键,依次还有for循环,System.out.println(); 在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一 ...
- [蓝桥杯]ALGO-48.算法训练_关联矩阵
题目描述: 问题描述 有一个n个结点m条边的有向图,请输出他的关联矩阵. 输入格式 第一行两个整数n.m,表示图中结点和边的数目.n<=,m<=. 接下来m行,每行两个整数a.b,表示图中 ...
- Reg2Bat_By Slore(生成同名bat文件,支持XP WIN7 WIN7X64).vbs
原文http://slore.blogbus.com/logs/52627038.htmlSlore编写的这个reg文件转换为bat文件,是逐句转换的,不是通过批处理生成临时reg文件然后导入的方法, ...
- Android WebView 开发详解
Android WebView 开发详解 参见 http://blog.csdn.net/typename/article/details/39030091
- 修改String中的内容
例子:有一个字符串"abcdef",现在想让字符串中的字符各自加1,求修改后的字符 String 在Java中是不可修改的. 方法1:将String 变为字符数组,通过修改字符数组 ...
- Linux rpm包安装MySQL数据库问题总结
1.安装包准备 2.按顺序安装以下安装包 一定要按顺序安装,因为前面的包是后面包的依赖 [root@iz2ze1bzpi3orra8lboxqiz mysql]# rpm -ivh Percona-S ...
- JDK、JRE与JVM的关系
- jQuery对象的获取与操作方法总结
一.文章概述: 众所周知,jQuery 是一个 JavaScript 库,包含多个可重用的函数,用来辅助我们简化javascript开发,它极大地简化了 JavaScript 编程.但是需要注意的一点 ...
- Android毛玻璃模糊化效果处理
三种方法 第一种:比较简单,性能比较低 /** * 通过调用系统高斯模糊api的方法模糊 * * @param bitmap source bitmap * @par ...