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. oracle rename数据文件的两种方法

    oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不 ...

  2. Xshell配置ssh使用密钥公钥(publice key)登录

    ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥( ...

  3. Ubuntu 安装以及web服务器配置

    1.安装实在没必要说,连系统都装不了,干脆下岗算了 2.Apache2 安装 //安装 sudo apt-get install apache2 Apache安装完成后,默认的网站根目录是" ...

  4. JAVA的debug入门和多断电调试

    调试的一般都是逻辑 第一步的错误双击数字旁边的蓝色地方,或者点击右键如图 断点的意思就是程序执行在哪里就停止 当找不到DEBUG中的Variables是在位置输入Variables就可以了: 再按下F ...

  5. ubuntu 17.10.1 安装 virtual box 增强工具

    ubuntu 17.10.1 安装 virtual box 增强工具遇到 “  Please install the gcc make perl packages from your distribu ...

  6. 时间序列大数据平台建设(Time Series Data,简称TSD)

    来源:https://blog.csdn.net/bluishglc/article/details/79277455 引言在大数据的生态系统里,时间序列数据(Time Series Data,简称T ...

  7. 解决Delphi 2010启动时卡死并报“displayNotification: 堆栈溢出”错误

    1. 清理IE的历史记录,删除浏览器缓存(不需要清cookie) 2. 禁用startpage 2.1 从 Delphi 2010 启动菜单上点右键 -> 查看属性->快捷方式->目 ...

  8. Windows XP Professional产品序列号

    BX6HT-MDJKW-H2J4X-BX67W-TVVFG产品密钥:FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8产品密钥:CCC64-69Q48-Y3KWW-8V9GV-TVKRM Wi ...

  9. ALGO-152_蓝桥杯_算法训练_8-2求完数

    记: 掌握完数的概念 AC代码: #include <stdio.h> int main(void) { int i,j,sum; ; i <= ; i ++) { sum = ; ...

  10. ALGO-151_蓝桥杯_算法训练_6-2递归求二进制表示位数

    记: 进制转换 AC代码: #include <stdio.h> #define K 2 int main(void) { ; scanf("%d",&n); ...