1 #-*- coding: UTF-8 -*-

2 #python tkinter menu

3 #python version 3.3.2

4 #EN = Window 7

5

6

7 from tkinter import *

8 from tkinter.messagebox import *

9 from tkinter.filedialog import *

10 from tkinter.colorchooser import *

11 '''

12 在python 3.3.2中,tkinter模块可以创建一个窗口控件,如Java中的Swing13 功能描述:14 根据Python 3.3.2 IDEL的菜单,创建出一个tkinter窗口15 File-Exit : 退出功能完成16 Help-About IDEL : 打印相应信息17 其他的菜单项,当点击时,会打印出相应菜单项的名称18 '''

19

20 __author__ = 'Hongten'

21 MENU_ITEMS = ['File', 'Edit', 'Format', 'Run', 'Options', 'Windows', 'Help', 'Test']22 #菜单File中的选项

23 MENU_FILE_ITEMS = ['New Window Ctrl+N',24 'Open... Ctrl+O',25 'Recent Files',26 'Open Module... Alt+M',27 'Class Browser Alt+C',28 'Path Browser',29 'Save Ctrl+S',30 'Save As... Ctrl+Shift+S',31 'Save Copy As... Ctrl+Alt+S',32 'Print Window Ctrl+P',33 'Close Alt+F4',34 'Exit Ctrl+Q']35 #菜单Edit中的选项

36 MENU_EDIT_ITEMS = ['Undo Ctrl+Z',37 'Redo Ctrl+Shift+Z',38 'Cut Ctrl+X',39 'Copy Ctrl+C',40 'Paste Ctrl+V',41 'Select All Ctrl+A',42 'Find... Ctrl+F',43 'Find Again Ctrl+G',44 'Find Selections Ctrl+F3',45 'Find in Files Alt+F3',46 'Replace... Ctrl+H',47 'Go to Line Alt+G',48 'Expend Word Alt+/',49 'Show call tip Ctrl+backslash',50 'Show surerounding parens Ctrl+0',51 'Show Completions Ctrl+space']52 #菜单Format中的选项

53 MENU_FORMAT_ITEMS = ['Check Module Alt+X',54 'Ident Region Ctrl+]',55 'Dedent Region Ctrl+[',56 'Commemt Out Region Alt+3',57 'Uncomment Region Alt+4',58 'Tabify Region Alt+5',59 'Untabify Region Alt+6',60 'Toggle Tabs Alt+T',61 'New Ident Width Alt+U',62 'Format Paragraph Alt+Q',63 'Strip trailing whitespace']64 #菜单Run中的选项

65 MENU_RUN_ITEMS = [ 'Python Shell',66 'Check Module Alt+X',67 'Run Module F5']68 #菜单Options中的选项

69 MENU_OPTIONS_ITEMS = ['Config IDEL...',70 'Code Context']71 #菜单Windows中的选项

72 MENU_WINDOWS_ITEMS = ['Zoom Height Alt+2']73 #菜单Help中的选项

74 MENU_HELP_ITEMS = ['About IDEL',75 'IDEL Help',76 'Python Docs F1']77 #菜单Test中的选项

78 MENU_TEST_ITEMS = ['about',79 'askokcancel messagebox',80 'askquestion messagebox',81 'askretrycancel messagebox',82 'askyesno messagebox',83 'showerror messagebox',84 'showinfo messagebox',85 'showwarning messagebox',86 'open file',87 'save as file',88 'colorchooser']89

90 #help-About IDEL

91 ABOUT_MESSAGE = '''

92 Author : Hongten93 Author_email : hongtenzone@foxmail.com94 Blog : http://www.cnblogs.com/hongten95 QQ : 64871981996 Created : 2013-09-0597 Version : 1.098 '''

99 defget_tk():100 '''获取一个Tk对象'''

101 returnTk()102

103 defset_tk_title(tk, title):104 '''给窗口定义title'''

105 if title is not None and title != '':106 tk.title(title)107 else:108 tk.title('Hongten v1.0')109

110 defset_tk_geometry(tk, size):111 '''设置窗口大小,size的格式为:widthxheight,如:size = '200x100'.'''

112 if size is not None and size != '':113 tk.geometry(size)114 else:115 tk.geometry('670x600')116

117 defget_menu(tk):118 '''获取一个菜单条'''

119 returnMenu(tk)120

121 defmenu_file(menubar):122 '''定义菜单File'''

123 filemenu = Menu(menubar, tearoff=1)124 filemenu.add_command(label=MENU_FILE_ITEMS[0], command=lambda:print(MENU_FILE_ITEMS[0]))125 filemenu.add_command(label=MENU_FILE_ITEMS[1], command=lambda:print(MENU_FILE_ITEMS[1]))126 filemenu.add_command(label=MENU_FILE_ITEMS[2], command=lambda:print(MENU_FILE_ITEMS[2]))127

128 filemenu.add_command(label=MENU_FILE_ITEMS[3], command=lambda:print(MENU_FILE_ITEMS[3]))129 filemenu.add_command(label=MENU_FILE_ITEMS[4], command=lambda:print(MENU_FILE_ITEMS[4]))130 filemenu.add_command(label=MENU_FILE_ITEMS[5], command=lambda:print(MENU_FILE_ITEMS[5]))131 filemenu.add_separator()132 filemenu.add_command(label=MENU_FILE_ITEMS[6], command=lambda:print(MENU_FILE_ITEMS[6]))133 filemenu.add_command(label=MENU_FILE_ITEMS[7], command=lambda:print(MENU_FILE_ITEMS[7]))134 filemenu.add_command(label=MENU_FILE_ITEMS[8], command=lambda:print(MENU_FILE_ITEMS[8]))135 filemenu.add_separator()136 filemenu.add_command(label=MENU_FILE_ITEMS[9], command=lambda:print(MENU_FILE_ITEMS[9]))137 filemenu.add_separator()138 filemenu.add_command(label=MENU_FILE_ITEMS[10], command=lambda:print(MENU_FILE_ITEMS[10]))139 filemenu.add_command(label=MENU_FILE_ITEMS[11], command=root.destroy)140 menubar.add_cascade(label=MENU_ITEMS[0], menu=filemenu)141

142 defmenu_edit(menubar):143 '''定义菜单Edit'''

144 edit_menu = Menu(menubar, tearoff=1)145 edit_menu.add_command(label=MENU_EDIT_ITEMS[0], command=lambda:print(MENU_EDIT_ITEMS[0]))146 edit_menu.add_command(label=MENU_EDIT_ITEMS[1], command=lambda:print(MENU_EDIT_ITEMS[1]))147 edit_menu.add_separator()148 edit_menu.add_command(label=MENU_EDIT_ITEMS[2], command=lambda:print(MENU_EDIT_ITEMS[2]))149 edit_menu.add_command(label=MENU_EDIT_ITEMS[3], command=lambda:print(MENU_EDIT_ITEMS[3]))150 edit_menu.add_command(label=MENU_EDIT_ITEMS[4], command=lambda:print(MENU_EDIT_ITEMS[4]))151 edit_menu.add_command(label=MENU_EDIT_ITEMS[5], command=lambda:print(MENU_EDIT_ITEMS[5]))152 edit_menu.add_separator()153 edit_menu.add_command(label=MENU_EDIT_ITEMS[6], command=lambda:print(MENU_EDIT_ITEMS[6]))154 edit_menu.add_command(label=MENU_EDIT_ITEMS[7], command=lambda:print(MENU_EDIT_ITEMS[7]))155 edit_menu.add_command(label=MENU_EDIT_ITEMS[8], command=lambda:print(MENU_EDIT_ITEMS[8]))156 edit_menu.add_command(label=MENU_EDIT_ITEMS[9], command=lambda:print(MENU_EDIT_ITEMS[9]))157 edit_menu.add_command(label=MENU_EDIT_ITEMS[10], command=lambda:print(MENU_EDIT_ITEMS[10]))158 edit_menu.add_command(label=MENU_EDIT_ITEMS[11], command=lambda:print(MENU_EDIT_ITEMS[11]))159 edit_menu.add_command(label=MENU_EDIT_ITEMS[12], command=lambda:print(MENU_EDIT_ITEMS[12]))160 edit_menu.add_command(label=MENU_EDIT_ITEMS[13], command=lambda:print(MENU_EDIT_ITEMS[13]))161 edit_menu.add_command(label=MENU_EDIT_ITEMS[14], command=lambda:print(MENU_EDIT_ITEMS[14]))162 edit_menu.add_command(label=MENU_EDIT_ITEMS[15], command=lambda:print(MENU_EDIT_ITEMS[15]))163 menubar.add_cascade(label=MENU_ITEMS[1], menu=edit_menu)164

165 defmenu_format(menubar):166 '''定义菜单Format'''

167 format_menu = Menu(menubar, tearoff=1)168 format_menu.add_command(label=MENU_FORMAT_ITEMS[0], command=lambda:print(MENU_FORMAT_ITEMS[0]))169 format_menu.add_command(label=MENU_FORMAT_ITEMS[1], command=lambda:print(MENU_FORMAT_ITEMS[1]))170 format_menu.add_command(label=MENU_FORMAT_ITEMS[2], command=lambda:print(MENU_FORMAT_ITEMS[2]))171 format_menu.add_command(label=MENU_FORMAT_ITEMS[3], command=lambda:print(MENU_FORMAT_ITEMS[3]))172 format_menu.add_command(label=MENU_FORMAT_ITEMS[4], command=lambda:print(MENU_FORMAT_ITEMS[4]))173 format_menu.add_command(label=MENU_FORMAT_ITEMS[5], command=lambda:print(MENU_FORMAT_ITEMS[5]))174 format_menu.add_command(label=MENU_FORMAT_ITEMS[6], command=lambda:print(MENU_FORMAT_ITEMS[6]))175 format_menu.add_command(label=MENU_FORMAT_ITEMS[7], command=lambda:print(MENU_FORMAT_ITEMS[7]))176 format_menu.add_command(label=MENU_FORMAT_ITEMS[8], command=lambda:print(MENU_FORMAT_ITEMS[8]))177 format_menu.add_command(label=MENU_FORMAT_ITEMS[9], command=lambda:print(MENU_FORMAT_ITEMS[9]))178 format_menu.add_separator()179 format_menu.add_command(label=MENU_FORMAT_ITEMS[10], command=lambda:print(MENU_FORMAT_ITEMS[10]))180 menubar.add_cascade(label=MENU_ITEMS[2], menu=format_menu)181

182 defmenu_run(menubar):183 '''定义菜单Run'''

184 run_menu = Menu(menubar, tearoff=1)185 run_menu.add_command(label=MENU_RUN_ITEMS[0], command=lambda:print(MENU_RUN_ITEMS[0]))186 run_menu.add_separator()187 run_menu.add_command(label=MENU_RUN_ITEMS[1], command=lambda:print(MENU_RUN_ITEMS[1]))188 run_menu.add_command(label=MENU_RUN_ITEMS[2], command=lambda:print(MENU_RUN_ITEMS[2]))189 menubar.add_cascade(label=MENU_ITEMS[3], menu=run_menu)190

191 defmeun_options(menubar):192 '''定义菜单Options'''

193 options_menu = Menu(menubar, tearoff=1)194 options_menu.add_command(label=MENU_OPTIONS_ITEMS[0], command=lambda:print(MENU_OPTIONS_ITEMS[0]))195 options_menu.add_separator()196 options_menu.add_command(label=MENU_OPTIONS_ITEMS[1], command=lambda:print(MENU_OPTIONS_ITEMS[1]))197 menubar.add_cascade(label=MENU_ITEMS[4], menu=options_menu)198

199 defmenu_windows(menubar):200 '''定义菜单Windows'''

201 windows_menu = Menu(menubar, tearoff=1)202 windows_menu.add_command(label=MENU_WINDOWS_ITEMS[0], command=lambda:print(MENU_WINDOWS_ITEMS[0]))203 windows_menu.add_separator()204 menubar.add_cascade(label=MENU_ITEMS[5], menu=windows_menu)205

206 defmeun_help(menubar):207 '''定义菜单Help'''

208 help_menu = Menu(menubar, tearoff=1)209 help_menu.add_command(label=MENU_HELP_ITEMS[0], command=lambda:print(MENU_HELP_ITEMS[0]))210 help_menu.add_separator()211 help_menu.add_command(label=MENU_HELP_ITEMS[1], command=lambda:print(MENU_HELP_ITEMS[1]))212 help_menu.add_command(label=MENU_HELP_ITEMS[2], command=lambda:print(MENU_HELP_ITEMS[2]))213 menubar.add_cascade(label=MENU_ITEMS[6], menu=help_menu)214

215 defmeun_test(menubar):216 '''定义菜单Help'''

217 test_menu = Menu(menubar, tearoff=1)218 test_menu.add_command(label=MENU_TEST_ITEMS[0], command=about)219 test_menu.add_separator()220 test_menu.add_command(label=MENU_TEST_ITEMS[1], command=help_test1)221 test_menu.add_command(label=MENU_TEST_ITEMS[2], command=help_test2)222 test_menu.add_command(label=MENU_TEST_ITEMS[3], command=help_test3)223 test_menu.add_command(label=MENU_TEST_ITEMS[4], command=help_test4)224 test_menu.add_command(label=MENU_TEST_ITEMS[5], command=help_test5)225 test_menu.add_command(label=MENU_TEST_ITEMS[6], command=help_test6)226 test_menu.add_command(label=MENU_TEST_ITEMS[7], command=help_test7)227 test_menu.add_separator()228 test_menu.add_command(label=MENU_TEST_ITEMS[8], command=help_test8)229 test_menu.add_command(label=MENU_TEST_ITEMS[9], command=help_test9)230 test_menu.add_separator()231 test_menu.add_command(label=MENU_TEST_ITEMS[10], command=help_test10)232 menubar.add_cascade(label=MENU_ITEMS[7], menu=test_menu)233

234 ############################################################

235 #Test Menu Items Functions

236 defabout():237 '''Help-About IDEL function'''

238 label = Label(root, text=ABOUT_MESSAGE, fg='red')239 label.pack(side='top')240

241 defhelp_test1():242 ask = askokcancel('askokcancel messagebox','你确定要这样做吗?')243 ifask:244 #to do something

245 print('你选择的是:确定')246 else:247 #to do something

248 print('你选择的是:取消')249

250 defhelp_test2():251 ask = askquestion('askquestion messagebox', '你很喜欢那个女孩吗?')252 if 'yes' ==ask:253 #to do something

254 print('是的,我很喜欢')255 elif 'no' ==ask:256 #to do something

257 print('不是这样的,我不喜欢她')258

259 defhelp_test3():260 ask = askretrycancel('askretrycancel messagebox', '该程序被其他程序占用,请重试..')261 ifask:262 #to do something

263 print('重试')264 else:265 #to do something

266 print('取消重试')267

268 defhelp_test4():269 ask = askyesno('askyesno messagebox', 'Can you cut down a tree with a herrign?')270 print(ask)271 if 'yes' ==ask:272 #to do something

273 print('yes')274 elif 'no' ==ask:275 #to do something

276 print('no')277

278 defhelp_test5():279 error = showerror('showerror messagebox', 'ClassNotFoundException...')280 if 'ok' ==error:281 #to do something

282 print('你选择的是确定...')283

284 defhelp_test6():285 info = showinfo('showinfo messagebox', 'This is an ex-parrot')286 if 'ok' ==info:287 #to do something

288 print('ok')289

290 defhelp_test7():291 warn = showwarning('showwarning messagebox', '内存溢出...')292 if 'ok' ==warn:293 #to do something

294 print('确认内存溢出...')295

296 defhelp_test8():297 '''打开文件'''

298 #('All files', '*')

299 openfilename = askopenfilename(filetypes=[('xml', '*.xml')])300 try:301 with open(openfilename, 'r') as fp:302 for line infp:303 print(line)304 fp.close()305 except:306 print('Could not open File:%s'%openfilename)307

308 defhelp_test9():309 '''打开文件'''

310 saveasfilename =asksaveasfilename()311 print('saves', saveasfilename.encode('utf-8'))312

313 defhelp_test10():314 '''颜色面板选择器'''

315 color = askcolor(title='颜色面板')316 print(color)317

318 ############################################################

319 #init menu bar

320 definit_menu_bar(menubar):321 '''初始化菜单条'''

322 menu_file(menubar) #file

323 menu_edit(menubar) #edit

324 menu_format(menubar) #format

325 menu_run(menubar) #run

326 meun_options(menubar) #options

327 menu_windows(menubar) #windows

328 meun_help(menubar) #help

329 meun_test(menubar) #test

330

331 #获得窗口对象

332 root =get_tk()333 #设置窗口大小

334 set_tk_geometry(root, '')335 #设置窗口title

336 set_tk_title(root, 'Python 3.3.2 Shell')337 #获取菜单对象

338 menubar =get_menu(root)339 #初始化菜单

340 init_menu_bar(menubar)341 #加载菜单配置

342 root.config(menu=menubar)343

344 mainloop()

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

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

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

  2. python 日历控件_python selenium 处理时间日期控件(十六)

    测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日 ...

  3. python定界符有哪些_Python 开发中有哪些高级技巧?

    和大多数现代编程语言一样,在 Python 中函数是抽象和封装的主要方法.作为开发人员,你平时可能写过几百个函数,但不是所有函数的作用都一样.如果写了个"坏"函数,会直接影响代码的 ...

  4. python编译环境搭建_python开发环境搭建

    python的开发环境是比较简单的,本来也没打算要写,不过现在想想还是写出来,一方面保证来我博客上python内容的完整性,一方面也可能有些人真的不会,毕竟我是用了很多其他语言之后才转到python的 ...

  5. python视频网站项目_Python开发教育网站项目实例教学(105集视频课程含源码)

    Python开发教育网站项目实例教学(105集视频课程含源码)课程简介: Python开发教育网站项目实例教学(105集视频课程含源码)通过这105集Python实例视频课程的学习,学员可以掌握到使用 ...

  6. python编辑器是什么_python开发用什么编辑器

    如果你想做得好,你必须首先提高工具.据估计,大部分pythoners开始python从python IDE.有许多python IDE工具,但这是一个艰巨的任务选择一个IDE使用.您可以使用最基本的文 ...

  7. python 通用数据库类型_Python开发基础之Python常用的数据类型

    博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...

  8. 用python画apc图_Python开发GUI实战:图片转换素描画工具!

    奋斗没有终点好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . ! 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己继 ...

  9. python工具安装教程_Python 开发工具PyCharm安装教程图文详解(新手必看)

    一.概念理解1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行jso ...

最新文章

  1. SQL2K数据库开发十一之表操作创建UNIQUE约束
  2. Python入门100题 | 第069题
  3. “贩卖”国潮新鲜感的花西子、完美日记们,能炒多久?
  4. RecyclerView Item 布局宽高无效问题探究
  5. spark插件剔除步骤
  6. UDT源代码下载链接
  7. vmware通过vCerter Converter Standalone实现不同VC的V2V虚拟机迁移
  8. 计算机科学讲座的策划书,计算机科学与工学院女生新生讲座策划书.doc
  9. java 调制信号,常见调制技术汇总
  10. 自动为数字千位数,百万位数添加逗号
  11. JAVA 模拟瞬间高并发
  12. Vue的生命周期函数和beforeRouteEnter()/beforeRouteLeave()的函数
  13. (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
  14. STM32CbueMX之W25Q256
  15. 内存(主存)(一般指电脑内存条)包含RAM(SRAM,DRAM),ROM,高速缓存(CACHE),SDRAM,DDRRAM
  16. 《东周列国志》第六十八回 贺虒祁师旷辨新声 散家财陈氏买齐国
  17. 剪辑视频时PR播放卡顿不连贯|如何修复Premiere软件中播放太卡问题
  18. Windows 10家庭版也能共享打印机(上)启用Guest账户
  19. 传递VB数组给DLL中的函数
  20. 小伙伴面试之成都创宇知道

热门文章

  1. Error: Assignments can only be reset if the group ‘group‘ is inactive, but the current state is Stab
  2. 基于ZigBee的WPAN网络配置应用
  3. 葫芦娃手游服务器未响应,葫芦娃充值没反应 充值元宝未到账解决办法
  4. 2020 我的计算机保研历程
  5. 为什么跨浏览器测试很重要?7款跨浏览器测试工具请查收
  6. Dell商用台式机、笔记本、服务器800电话
  7. 常规计算机控制系统的控制过程,计算机过程控制系统
  8. 怎么才能使用计算机,电脑说有人远程使用计算机,怎么才能开到机啊
  9. “玲珑杯”郑州轻工业学院第九届ACM程序设计大赛圆满结束
  10. 计算机玩游戏 突然黑屏 又亮了,显示器黑一下又亮了怎么回事?解决显示器黑屏一会又亮一会又黑...