📝

个人博客

技术笔记、生活感悟、读书随笔,记录值得留下的东西

返回首页

用 PyQt5 构建桌面应用的心得

从零开始用 PyQt5 开发库存管理系统的过程中,遇到了不少坑。这里记录一下信号槽机制、多线程处理和数据库事务方面的实践经验。

信号槽机制是 PyQt5 的核心。在开发库存管理系统时,我用信号槽实现了物料列表和详情面板的联动——当用户在列表中选中某条物料时,发出 materialSelected 信号,详情面板接收信号后自动刷新内容。

多线程是另一个关键点。Excel 批量导入如果放在主线程执行,会导致界面完全冻结。我使用 QThread 把导入逻辑放到工作线程中,通过自定义信号向主线程报告进度,用户体验提升非常明显。

数据库事务方面,入库操作需要同时写入入库记录表和更新物料表的库存数量,这两步必须在同一事务中完成。如果其中一步失败,必须回滚整个事务,否则就会出现数据不一致的问题。

写代码和写文章是一样的

好的代码和好的文章一样,需要清晰的结构、准确的表达和必要的留白。这是我在编程和写作中找到的有趣共鸣。

写代码时,我们讲究单一职责原则——一个函数只做一件事。写文章也是一样,一段话只表达一个核心观点,不要把太多信息塞在一起。

好的变量名就像好的标题,一眼就能让人明白它代表什么。好的注释就像文章的过渡句,连接上下文,让读者不会迷失。

而留白——代码里的空行分隔不同逻辑块,文章里的段落分隔不同观点——都是为了让读者有喘息的空间。

我的 2026 年度工具清单

整理了日常开发、笔记、设计中最常用的工具和插件,从 VS Code 配置到自动化脚本,分享我的效率工作流。

开发工具方面,VS Code 是我的主力编辑器,搭配 Python 扩展、GitLens 和 Prettier 基本可以覆盖日常需求。数据库管理用 DB Browser for SQLite,轻量又好用。

笔记工具从 Notion 迁移到了 Obsidian,主要是看中它的本地存储和 Markdown 格式,不依赖云端,数据完全掌握在自己手里。

自动化方面,用 Python 写了一些脚本自动备份重要文件到百度网盘,再也不用担心数据丢失了。