python 窗体控件_python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)...
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_博主推荐(二)...相关推荐
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: 1 import tkinter as tk 2 3 clas ...
- python 日历控件_python selenium 处理时间日期控件(十六)
测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日 ...
- python定界符有哪些_Python 开发中有哪些高级技巧?
和大多数现代编程语言一样,在 Python 中函数是抽象和封装的主要方法.作为开发人员,你平时可能写过几百个函数,但不是所有函数的作用都一样.如果写了个"坏"函数,会直接影响代码的 ...
- python编译环境搭建_python开发环境搭建
python的开发环境是比较简单的,本来也没打算要写,不过现在想想还是写出来,一方面保证来我博客上python内容的完整性,一方面也可能有些人真的不会,毕竟我是用了很多其他语言之后才转到python的 ...
- python视频网站项目_Python开发教育网站项目实例教学(105集视频课程含源码)
Python开发教育网站项目实例教学(105集视频课程含源码)课程简介: Python开发教育网站项目实例教学(105集视频课程含源码)通过这105集Python实例视频课程的学习,学员可以掌握到使用 ...
- python编辑器是什么_python开发用什么编辑器
如果你想做得好,你必须首先提高工具.据估计,大部分pythoners开始python从python IDE.有许多python IDE工具,但这是一个艰巨的任务选择一个IDE使用.您可以使用最基本的文 ...
- python 通用数据库类型_Python开发基础之Python常用的数据类型
博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...
- 用python画apc图_Python开发GUI实战:图片转换素描画工具!
奋斗没有终点好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . ! 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己继 ...
- python工具安装教程_Python 开发工具PyCharm安装教程图文详解(新手必看)
一.概念理解1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行jso ...
最新文章
- SQL2K数据库开发十一之表操作创建UNIQUE约束
- Python入门100题 | 第069题
- “贩卖”国潮新鲜感的花西子、完美日记们,能炒多久?
- RecyclerView Item 布局宽高无效问题探究
- spark插件剔除步骤
- UDT源代码下载链接
- vmware通过vCerter Converter Standalone实现不同VC的V2V虚拟机迁移
- 计算机科学讲座的策划书,计算机科学与工学院女生新生讲座策划书.doc
- java 调制信号,常见调制技术汇总
- 自动为数字千位数,百万位数添加逗号
- JAVA 模拟瞬间高并发
- Vue的生命周期函数和beforeRouteEnter()/beforeRouteLeave()的函数
- (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
- STM32CbueMX之W25Q256
- 内存(主存)(一般指电脑内存条)包含RAM(SRAM,DRAM),ROM,高速缓存(CACHE),SDRAM,DDRRAM
- 《东周列国志》第六十八回 贺虒祁师旷辨新声 散家财陈氏买齐国
- 剪辑视频时PR播放卡顿不连贯|如何修复Premiere软件中播放太卡问题
- Windows 10家庭版也能共享打印机(上)启用Guest账户
- 传递VB数组给DLL中的函数
- 小伙伴面试之成都创宇知道
热门文章
- Error: Assignments can only be reset if the group ‘group‘ is inactive, but the current state is Stab
- 基于ZigBee的WPAN网络配置应用
- 葫芦娃手游服务器未响应,葫芦娃充值没反应 充值元宝未到账解决办法
- 2020 我的计算机保研历程
- 为什么跨浏览器测试很重要?7款跨浏览器测试工具请查收
- Dell商用台式机、笔记本、服务器800电话
- 常规计算机控制系统的控制过程,计算机过程控制系统
- 怎么才能使用计算机,电脑说有人远程使用计算机,怎么才能开到机啊
- “玲珑杯”郑州轻工业学院第九届ACM程序设计大赛圆满结束
- 计算机玩游戏 突然黑屏 又亮了,显示器黑一下又亮了怎么回事?解决显示器黑屏一会又亮一会又黑...