python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的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_菜单选项中英文切换_菜单选项不可用操作_博主推荐的更多相关文章
- python开发_tkinter_单选菜单_不可用菜单操作
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_多级子菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_复选菜单
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...
- python开发_tkinter_获取单选菜单值
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_小球完全弹性碰撞游戏
python开发_tkinter_小球完全弹性碰撞游戏 完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...
- python开发_shelve_完整版_博主推荐
''' python中的shelve模块,可以提供一些简单的数据操作 他和python中的dbm很相似. 区别如下: 都是以键值对的形式保存数据,不过在shelve模块中, key必须为字符串,而值可 ...
随机推荐
- Python标准库笔记(10) — itertools模块
itertools 用于更高效地创建迭代器的函数工具. itertools 提供的功能受Clojure,Haskell,APL和SML等函数式编程语言的类似功能的启发.它们的目的是快速有效地使用内存, ...
- Intel大坑之一:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
缘由 最近在写一些字符串函数的优化,兴趣使然,可是写的过程中,想要实现 128bit 的按 bit 逻辑位移,遇到了一个大坑,且听我娓娓道来. 如果要追究标题,更确切的是丢失的SSE2 128 bit ...
- 20 Organizing Go code 组织go代码
Organizing Go code 16 August 2012 Introduction Go code is organized differently to that of other lan ...
- js写的一些通用方法
Js获取当前浏览器支持的transform兼容写法 // 获取当前浏览器支持的transform兼容写法 function getTransfrom() { var transform = '', / ...
- 你竟然在公钥中下毒!——如何在RSA公钥中添加后门
原文:http://www.hackdig.com/?01/hack-17893.htm 分享到: 当我知道它是如何运行时,我惊得下巴都掉了.这是一个非常简单的手法,但这篇文章会颠覆你之前对RSA的看 ...
- Git 撤销操作、删除文件和恢复文件
大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操 ...
- [android]Intent跳转新的Activity可以传递数据过去
两种方式: 一,直接通过Bundle对象来传递: 如果我们想要给“收件人”Activity说点什么的话,那么可以通过下面这封“E-mail”来将我们的消息传递出去 Intent intent=new ...
- java 添加一组元素
在java包中的Arrays和Collection类中都有很多实用方法,可以在一个Collection中添加一组元素,Array.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变 ...
- Android Studio编译慢、卡死和狂占内存怎么破?
https://www.zhihu.com/question/27953288 作者:知乎用户链接:https://www.zhihu.com/question/27953288/answer/118 ...
- Android Activity、Service、BroadcastReceiver 的生命周期
Activity.Service.BroadcastReceiver这三个组建是Android开发中最常使用到的组件,在它们的生命周期的各个阶段我们需要针对性的做些事情,了解这些组件的生命周期有利于我 ...