我使用的python版本为:3.3.2

如果你对python中tkinter模块的菜单操作不是很了解,你可以看看:

python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐

python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

如果你了解一些tkinter菜单操作,也许这篇blog对你有所帮助:

运行效果:

1.英文效果:

只需要修改如下代码,就可以实现中英文转换:

     #选择中英文
if not FLAG:
MENU_BAR = CN_MENU_ITEMS
MENU_FILE_ITEMS = CN_FILE_MENU_ITEMS
MENU_EDIT_ITEMS = CN_EDIT_MENU_ITEMS
else:
MENU_BAR = EN_MENU_ITEMS
MENU_FILE_ITEMS = EN_FILE_MENU_ITEMS
MENU_EDIT_ITEMS = EN_EDIT_MENU_ITEMS

2.中文效果:

=================================================

代码部分:

=================================================

 #python tkinter menu

 from tkinter import *

 # some vocabulary to keep from getting confused. This terminology
# is something I cooked up for this file, but follows the man pages
# pretty closely
#
#
#
# This is a MENUBUTTON
# V
# +-------------+
# | |
#
# +------------++------------++------------+
# | || || |
# | File || Edit || Options | <-------- the MENUBAR
# | || || |
# +------------++------------++------------+
# | New... |
# | Open... |
# | Print |
# | | <------ This is a MENU. The lines of text in the menu are
# | | MENU ENTRIES
# | +---------------+
# | Open Files > | file1 |
# | | file2 |
# | | another file | <------ this cascading part is also a MENU
# +----------------| |
# | |
# | |
# | |
# +---------------+ __author__ = {'name' : 'Hongten',
'Email' : 'hongtenzone@foxmail.com',
'Blog' : 'http://www.cnblogs.com/hongten',
'QQ' : '',
'Created' : '2013-09-10'} #global var
#flag
FLAG = True
MENU_BAR = []
MENU_FILE_ITEMS = []
MENU_EDIT_ITEMS = [] #菜单条选项
CN_MENU_ITEMS = ['文件', '编辑']
EN_MENU_ITEMS = ['File', 'Edit'] #File菜单选项子菜单
CN_FILE_MENU_ITEMS = ['创建...', '打开...', '退出']
EN_FILE_MENU_ITEMS = ['New...', 'Open...', 'Quit'] #Edit菜单选项子菜单
CN_EDIT_MENU_ITEMS = ['不可用', '剪切', '复制', '粘贴']
EN_EDIT_MENU_ITEMS = ['Undo', 'Cut', 'Copy', 'Paste'] def init():
global FLAG
FLAG = True
global MENU_BAR
global MENU_FILE_ITEMS
global MENU_EDIT_ITEMS
#选择中英文
if not FLAG:
MENU_BAR = CN_MENU_ITEMS
MENU_FILE_ITEMS = CN_FILE_MENU_ITEMS
MENU_EDIT_ITEMS = CN_EDIT_MENU_ITEMS
else:
MENU_BAR = EN_MENU_ITEMS
MENU_FILE_ITEMS = EN_FILE_MENU_ITEMS
MENU_EDIT_ITEMS = EN_EDIT_MENU_ITEMS root = Tk()
init()
root.geometry('250x200')
root.title('menu demo')
root.iconname('packer') def new_file():
print('File -- New...') def open_file():
print('File -- Open...') def create_file_menu():
'''创建Fiel菜单项,在File菜单中包含:
New...
Open...
Quit
等子菜单。'''
file_item = Menubutton(menu_bar, text=MENU_BAR[0], underline=0)
file_item.pack(side=LEFT, padx='1m')
file_item.menu = Menu(file_item) file_item.menu.add_command(label=MENU_FILE_ITEMS[0], underline=0, command=new_file)
file_item.menu.add_command(label=MENU_FILE_ITEMS[1], underline=0, command=open_file)
file_item.menu.add_command(label=MENU_FILE_ITEMS[2], underline=0, command=root.destroy)
file_item['menu'] = file_item.menu
return file_item def create_edit_menu():
'''创建Edit菜单项,在Edit菜单中包含:
Undo
Cut
Copy
Paste
等子菜单。'''
edit_item = Menubutton(menu_bar, text=MENU_BAR[1], underline=1)
edit_item.pack(side=LEFT, padx='1m')
edit_item.menu = Menu(edit_item)
#不可用状态
edit_item.menu.add('command', label=MENU_EDIT_ITEMS[0])
edit_item.menu.entryconfig(1, state=DISABLED) edit_item.menu.add_command(label=MENU_EDIT_ITEMS[1])
edit_item.menu.add_command(label=MENU_EDIT_ITEMS[2])
edit_item.menu.add_command(label=MENU_EDIT_ITEMS[3])
edit_item['menu'] = edit_item.menu
return edit_item menu_bar = Frame(root, relief=RAISED, borderwidth=2)
menu_bar.pack(fill=X) #创建File,Edit菜单项
file_meun = create_file_menu()
edit_menu = create_edit_menu() #加载File,Edit菜单项到窗口的菜单栏
menu_bar.tk_menuBar(file_meun, edit_menu) root.mainloop()

参考资料:

http://www.oschina.net/code/explore/Python-3.1.3/Demo/tkinter/matt/menu-simple.py

python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐的更多相关文章

  1. python开发_tkinter_单选菜单_不可用菜单操作

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  2. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  3. python开发_tkinter_多级子菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  4. python开发_tkinter_复选菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  5. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

    在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...

  6. python开发_tkinter_获取单选菜单值

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  7. python开发_tkinter_小球完全弹性碰撞游戏

    python开发_tkinter_小球完全弹性碰撞游戏   完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...

  8. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐

    在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...

  9. python开发_shelve_完整版_博主推荐

    ''' python中的shelve模块,可以提供一些简单的数据操作 他和python中的dbm很相似. 区别如下: 都是以键值对的形式保存数据,不过在shelve模块中, key必须为字符串,而值可 ...

随机推荐

  1. aarch64_p2

    perl-Crypt-URandom-0.36-6.fc26.noarch.rpm 2017-02-12 07:17 16K fedora Mirroring Project perl-Crypt-X ...

  2. servlet Filter过滤javascript

    新建HttpServletRequestWrapper子类XssHttpServletRequestWrapper import javax.servlet.http.HttpServletReque ...

  3. 运用java反射

    Class类 要正确使用Java反射机制就得使用java.lang.Class这个类.它是Java反射机制的起源.当一个类被加载以后,Java虚拟机就会自动产生一个Class对象.通过这个Class对 ...

  4. 数据结构之线性表(python版)

    数据结构之线性表(python版) 单链表 1.1  定义表节点 # 定义表节点 class LNode(): def __init__(self,elem,next = None): self.el ...

  5. js事件兼容处理

    js封装事件处理函数,兼容ie,支持事件代理 var eventUtil = { bindEvent: function(el, type, target, callback, popgation) ...

  6. IntelliJ IDEA + Tomcat ;On Upate Action 与 On Frame Deactivation

    On Upate Action 与 On Frame Deactivation  这两个选项的设置,依赖于 项目的部署方式 是war包 还是 exploded ,看下面的gif: 这里实在是太灵活了, ...

  7. 最邻近规则分类KNN算法

    例子: 求未知电影属于什么类型: 算法介绍: 步骤:  为了判断未知实例的类别,以所有已知类别的实例作为参照      选择参数K      计算未知实例与所有已知实例的距离      选择最近K个已 ...

  8. mysql索引(btree索引和hash索引的区别)

    所有MySQL列类型可以被索引.根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节.大多数存储引擎有更高的限制. 索引的存储类型目前只有 ...

  9. JAVA类课后练习

    1.Pg168--2 package com.hanqi; import java.util.Scanner; public class Rectangle { Rectangle() { //完成初 ...

  10. Java开发工程师学习路线

    贴一个比较出名的Java开发工程师学习路线图 好好学习提升中 这个貌似也不是特别全,算法,设计模式,架构好像都没有