2018-09-28 用Python3和tkinter开发简单图形界面程序
程序员文章站
2022-06-04 20:18:43
源码库: "program in chinese/wubi_code_editor" 起因在 "这里" . 由于此项目和汉字相关, 个人也想尝试Python的图形界面开发, 于是开始尝试. 遇到的一个坑. 用户测试时, 发现png图片加载不了, 后发现是由于tkinter版本问题: "Tkinter ......
源码库:
起因在. 由于此项目和汉字相关, 个人也想尝试python的图形界面开发, 于是开始尝试.
遇到的一个坑. 用户测试时, 发现png图片加载不了, 后发现是由于tkinter版本问题: tkinter.photoimage doesn't not support png image
现在还处于原型状态, 两百多行代码都在一个文件中. 几个主要问题:
- 界面需要分离, 与界面无关的部分需要添加测试用例
- 文件路径只支持linux/mac, 还需支持windows, 参考: python 3 quick tip: the easy way to deal with file paths on windows, mac and linux
- 完善功能: 支持对缺失数据的添加, 按编码范围导出到不同文件(出处); 按字搜索; 笔顺数据; unicode 编码区
- 在vs code下开发, 还没使用测试/调试相关功能. 参考: python in visual studio code
源码节选:
读入csv源数据:
def 读入源数据文件(self, 文件名): # 官方文档参考: https://docs.python.org/3/library/csv.html#module-contents with open(文件名, newline='') as 源数据文件: 源数据读取器 = csv.reader(源数据文件, delimiter=',') for 行 in 源数据读取器: self.字符列表.append(行)
导出csv文件:
def 导出文件(self): with open(常量_修改后文件, 'w', newline='') as 目标文件: 写文件 = csv.writer(目标文件, delimiter=',') for 字符 in self.字符列表: 写文件.writerow(字符) print("修改保存到: " + 常量_修改后文件)
创建图片显示:
# 显示图片, 参考: https://*.com/questions/35024118/how-to-load-an-image-into-a-python-3-4-tkinter-window def 创建图片显示(self, 区域, 字体名, 位置): 字体区 = frame(区域) 字体区.pack(side = 位置) 字体提示 = label(字体区, text = 字体名) 字体提示.pack() 图片路径 = 常量_图片主目录 + 常量_图片路径[字体名] + self.图片子路径 print(图片路径) try: 图片 = photoimage(file=图片路径) except: print("找不到图片") 图片 = photoimage() 图片显示 = label(字体区, image=图片) 图片显示.image = 图片 图片显示.pack() return 图片显示
----------- 10/1/2018 更新 ------------
功能和重构基本完成. 还剩下一个问题"文件路径只支持linux/mac, 还需支持windows", 由于题主只在linux下使用, 暂不打算实现.
经过添加测试, 发现了几个bug.
承蒙题主宣传: 感谢 xuanwu 制作五笔编码编校软件 python 版 - v2ex
---------- 12/24/2018 更新 ----------
上个月题主提交了好几个pr, 很高兴看到原本的纯用户成为了合作者. 最近的一文也受了这个实例的启发.
上一篇: 小苏打腌毛肚需要多长时间才能洗干净