用Python3和tkinter开发简单图形界面程序

简介: 用Python3和tkinter开发五笔编码编辑器. Create a wubi encoding editor using Python with Chinese naming.

2018_09_28_wubi_

源码库: program-in-chinese/wubi_code_editor

起因在这里. 由于此项目和汉字相关, 个人也想尝试Python的图形界面开发, 于是开始尝试.

遇到的一个坑. 用户测试时, 发现png图片加载不了, 后发现是由于tkinter版本问题: Tkinter.PhotoImage doesn't not support png image

现在还处于原型状态, 两百多行代码都在一个文件中. 几个主要问题:

源码节选:

读入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://stackoverflow.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, 很高兴看到原本的纯用户成为了合作者. 最近的在国内原创开源项目中使用中文命名的意义与方式一文也受了这个实例的启发.

相关文章
|
10天前
|
算法 测试技术 开发者
性能优化与代码审查:提升Python开发效率
【4月更文挑战第9天】本文强调了Python开发中性能优化和代码审查的重要性。性能优化包括选择合适数据结构、使用生成器和避免全局变量,而代码审查涉及遵循编码规范、使用静态代码分析工具和编写单元测试。这些实践能提升代码效率和可维护性,促进团队协作。
|
1天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
1天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
9 0
|
4天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
8天前
|
JavaScript 前端开发 关系型数据库
金融技术解决方案:用Python和Vue开发加密货币交易平台
【4月更文挑战第11天】本文介绍了如何使用Python和Vue.js构建加密货币交易平台。首先确保安装了Python、Node.js、数据库系统和Git。后端可选择Flask或Django框架,通过RESTful API处理交易。前端利用Vue.js、Vuex和Vue Router创建用户友好的界面,并用Axios与后端通信。这种架构促进团队协作,提升代码质量和平台功能。
|
9天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
17天前
|
前端开发 测试技术 数据库
【python】为什么使用python Django开发网站这么火?
【python】为什么使用python Django开发网站这么火?
|
17天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
196 1
|
17天前
|
分布式计算 算法 搜索推荐
优化 Python 程序的五大技巧
本文介绍了优化 Python 程序的五大技巧,涵盖了代码结构优化、算法选择、内置函数利用、库的使用以及并行处理等方面。通过对这些技巧的实践,可以提升 Python 程序的性能和效率,从而更好地满足各类应用的需求。
|
18天前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序