更新:
2017.07.17 补充滚动条、win批处理拉起py
2017.08.13 新增自定义图标
一、背景:
1.工作中自己及同事在查数据库、测试接口时需要对一些字符串或json串作预处理,目前这些问题网上均有在线转换的工具,但很繁杂,可能需要打开几个网页窗口;
2.之前做的文本处理工具是基于cmd命令行的,不太友好;
3.自己做的一些小工具也基本都是命令行执行的,也想接触下GUI;
基于以上,了解到python自带的tkinter库可以初步满足UI的需求,业余时间做了个图形化工具,涉及窗口、文本、按钮、标签、菜单、菜单树、滚动条、文件处理、界面布局等;
下文将梳理从零到完成的全过程,作为自己GUI学习的一个总结;
ps:后面版本间隙有时间的话想试试用pyQt来做。。tkinter做出的界面确实。。。23333
工具界面截图:
二、实现
1.安装所需要的库 ps:环境是win7+python 3.6,tkinter是py的标准库,即:如不涉及EXCEL处理,可跳过此步骤;使用python处理Excel表格,后面有时间会单独整理
(1)et-xmlfile openpyxl安装需要依赖,工具里有涉及处理EXCEL(xlsx),需要用到openpyxl库;
(2)jdcal 同上
(3)openpyxl 处理EXCEL(xlsx)
(4)xlrd 读取EXCEL(xls)
(5)xlwt 写入EXCEL(xls)
(6)xltils 配合上面两个库对已存在表格进行修改
2.新建父窗口(可理解为界面的最底层)
##################################################################author: 陈月白#_blogs: http://mon_tools_gui.py所在目录下新建start_my_gui.vbs,写入import ctypes ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")此时双击该vbs脚本,即可拉起软件界面,且隐藏cmd控制台界面;
2. 暂时木有了。。
后面项目间隙有可能会研究下robotFramework~
也有可能会试着用pyQt重写下这个界面
先到这了;
2017.07.17
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3.自定义图标
python打开工具时,左上角默认为tkinter默认图标
,任务栏为python默认图标;
查了下,python的tkinter库支持自定义图标:py文件当前目录下制作ico图标文件(https://www.ico.la/),父窗口使用iconbitmap()方法,指定该文件即可;
self.init_window_name.iconbitmap('text_processing_tools.ico') #指定界面图标中途有个坑,就是仅左上角生效,但windows下方的任务栏无效;
百度之,大概意思是文本工具的py文件运行时,windows认为弹出的工具窗口是python解释器的衍生程序(子程序?),即默认仍使用pythpn解释器的图标;
需要在代码中指定弹出窗口的AppUserModelID即可:
import ctypes ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")效果:
左上角: 底侧任务栏:
附目录结构:
2017.08.13