1. 项目全景与工具链:桌面应用开发概览、技术选型(Python + PySide6)、项目生命周期介绍
各位同学,欢迎来到这门实战课。
说实话,我见过太多人学桌面开发,一上来就啃官方文档,结果啃到一半就放弃了。为什么?因为太枯燥了。你想想看,光是一个信号槽机制就能讲三章,谁受得了?
所以这门课不一样。我们从第一天就开始做项目,边做边学。今天这一章,我们先搭个全景图,让你知道接下来30天我们要干什么。
桌面应用开发,到底在做什么?
桌面应用,说白了就是能在你电脑上双击打开的那个窗口程序。QQ、微信、VS Code、Photoshop,这些都是桌面应用。
我刚开始做开发时,总觉得桌面应用已经过时了,大家都在搞Web。直到有一次,我给一个工厂做内部管理系统——你猜怎么着?人家车间里根本没有互联网,只有一台Windows工控机。Web应用?连不上网。App?没有手机。唯一能用的,就是桌面程序。
从那以后我明白了:桌面应用永远不会死。它适合这些场景:
- 离线环境:工厂、医院、实验室,很多地方不允许联网
- 高性能需求:视频剪辑、3D建模、数据分析,浏览器扛不住
- 系统级操作:文件管理、硬件控制、注册表修改,Web做不到
- 企业内工具:内部管理系统、报表工具、自动化脚本,开发快部署方便
为什么选 Python + PySide6?
这个问题我经常被问到。市面上能选的技术栈其实不少:
| 技术栈 | 优点 | 缺点 |
|---|---|---|
| Python + PySide6 | 开发快、生态好、跨平台 | 打包体积大、性能一般 |
| C# + WPF | 性能好、Windows原生 | 只支持Windows、学习曲线陡 |
| Electron (JS) | Web技术栈、跨平台 | 内存占用高、启动慢 |
| Flutter Desktop | UI漂亮、性能好 | 生态不成熟、坑多 |
我个人习惯用 Python + PySide6。原因很简单:Python 让你专注于业务逻辑,PySide6 让你快速做出漂亮的界面。我在项目中遇到过很多次,客户今天提需求,明天就要看效果。用 Python 写,半天就能出一个可运行的 demo。换成 C# ?光环境配置就得一天。
核心观点:技术选型没有绝对的对错,只有合不合适。对于本课程的教学目标——让你快速上手并完成一个完整项目——Python + PySide6 是最优解。
PySide6 是什么?和 PyQt 有什么区别?
PySide6 是 Qt6 的 Python 绑定。Qt 是一个跨平台的 C++ 图形界面框架,历史悠久,功能强大。PySide6 让你可以用 Python 调用 Qt 的所有功能。
至于 PyQt,它是另一个 Python 绑定。两者功能几乎一样,但许可证不同:
- PySide6:LGPL 许可证,可以免费用于商业项目,不需要开源你的代码
- PyQt:GPL 许可证,商业使用需要购买授权
嗯,这里要注意:如果你打算做商业软件,选 PySide6 会省去很多法律上的麻烦。我曾经有个朋友,用 PyQt 做了个工具卖给了客户,结果被律师函警告了……从那以后,我所有项目都改用 PySide6。
项目生命周期:从想法到交付
一个完整的桌面应用项目,通常会经历这几个阶段:
- 需求分析:搞清楚用户到底想要什么。这一步做不好,后面全是白搭。
- 原型设计:用 Figma 或 Qt Designer 画出界面草图。别急着写代码,先让用户看看长什么样。
- 技术选型:确定用什么语言、什么框架、什么数据库。就是我们刚才聊的。
- 编码实现:写代码。这个阶段最长,也最考验基本功。
- 测试调试:找 bug、修 bug。我建议你从一开始就养成写测试的习惯。
- 打包分发:把程序打包成 exe 或 dmg,发给用户安装。
- 维护迭代:用户会提新需求、发现新 bug,你得持续更新。
我的经验:很多新手会跳过「原型设计」这一步,直接上手写代码。结果写到一半发现界面布局不对,又得重来。我建议你至少花一天时间画原型,哪怕用纸笔画都行。这一步省下来的时间,后面会加倍还给你。
本课程的项目是什么?
我们要做一个个人记账本桌面应用。为什么选这个?
- 功能清晰,大家都懂:记录收入支出、查看统计报表
- 技术覆盖全面:界面布局、数据存储、图表展示、打包分发
- 实用性强:做完之后你自己也能用
说白了,这个项目麻雀虽小五脏俱全。你学完之后,换一个业务场景,比如做个库存管理系统、客户管理工具,思路是完全一样的。
你需要准备什么?
在开始之前,请确保你的电脑上安装了这些:
- Python 3.9+:推荐 3.10 或 3.11
- PySide6:用 pip 安装
pip install PySide6 - VS Code 或 PyCharm:选你顺手的就行
- Git:版本控制,后面会用到
避坑指南:我曾经遇到过 Python 版本不兼容的问题。PySide6 对 Python 3.12 的支持还不完善,建议先用 3.10 或 3.11。别问我怎么知道的……折腾了一下午才找到原因。
本章小结
今天我们聊了三件事:
- 桌面应用依然有价值,尤其在离线和高性能场景
- Python + PySide6 是快速开发桌面应用的好选择
- 一个完整的项目要经历需求、设计、编码、测试、打包、维护六个阶段
下一章,我们会搭建开发环境,然后创建第一个 PySide6 窗口。别担心,代码量很少,你五分钟就能跑起来。
准备好了吗?我们开始吧。