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必须为字符串,而值可 ...
随机推荐
- SQl 跨服务器查询脚本示例
1.采用OPENDATASOURCE select top 10 *from OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=连接用户名称;Pa ...
- oracle11g的冷热备份
1.冷备份 如果数据库可以正常关闭,而且允许关闭足够长的时间,那么就可以采用冷备份(脱机备份),可以是归档冷备份,也可以是非归档冷备份.其方法是首先关闭数据库,然后备份所有的物理文件,包括数据文件.控 ...
- [NOI2014]购票 「树上斜率优化」
首先易得方程,且经过变换有 $$\begin{aligned} f_i &= \min\limits_{dist_i - lim_i \le dist_j} \{f_j + (dist_i - ...
- 【前端vue开发架构】vue开发单页项目架构总结
为营销活动设计的前端架构 主要的技术栈为 Vuejs,Webpack,请自行阅读如下技术或者框架的文档: 一.基础说明: node (https://nodejs.org/en/) npm (http ...
- python网络编程--线程event
一:线程event作用 Python提供了Event对象用于线程间通信,它是线程设置的信号标志,如果信号标志位真,则其他线程等待直到信号结束. Event对象实现了简单的线程通信机制,它提供了设置信号 ...
- liblinear和libsvm区别
来源于知乎: 1. LibLinear是线性核,LibSVM可以扩展到非线性核(当也能用线性核,但同样在线性核条件下会比LibLinear慢很多).2. 多分类:LibLinear是one vs al ...
- 机器学习 Python实践-K近邻算法
机器学习K近邻算法的实现主要是参考<机器学习实战>这本书. 一.K近邻(KNN)算法 K最近邻(k-Nearest Neighbour,KNN)分类算法,理解的思路是:如果一个样本在特征空 ...
- Ubuntu 14.04 16.04 Linux nvidia 驱动下载与安装
Ubuntu 14.04 16.04 nvidia 驱动安装 最简单直观的方式是在如下的对话框中直接选择驱动安装即可 但是有时候,驱动不够新,比如14.04用的是340.98版本,如果手动安装驱动可以 ...
- progressDialog和子线程模拟显示拷贝进度
package com.example.wang.myapplication; import android.app.ProgressDialog; import android.os.Bundle; ...
- 自定义排序及Hadoop序列化
自定义排序 将两列数据进行排序,第一列按照升序排列,当第一列相同时,第二列升序排列. 在map和reduce阶段进行排序时,比较的是k2.v2是不参与排序比较的.如果要想让v2也进行排序,需要把k2和 ...