一个简单好用的 PySide6 项目模板

7 天前
 SHIINASAMA

简介

这个模板原本来自我为公司内部开发的几个桌面小工具,有相当多的重复部分,所以很早就考虑提取出公共部分做成一个模板以备不时之需,可以直接开箱即用。半年东改西改终于算是稳定下来了,没出过什么问题,也暂时没其他需求了。


Q/A:

Q:模板适用什么场景?

A:适合做一些规模不大,需要快速开发的产品,只需要投入较少的精力就能获得较好的体验。


Q:模板包含了哪些功能?

A:技术上,我整合了 pyside6 (核心 UI 部分) + qasync (更简单的异步写法) + pytest (单测) + PyQtDarkTheme (支持动态主题切换)+ nuitka (编译打包);功能上,编写了一个 tool 模块,支持转换 *.ui 文件、Qt 资源打包、i18n 等,配合使用可以一条龙打包应用程序。例如:

uv run -m tool --all --onefile

程序本体还支持检查更新并一键自更新的功能。


Q:模板支持哪些平台?

A:目前支持 Windows 和 Linux ,macOS 由于没有设备无法开发并测试。Windows 最多支持到 Win 7 使用一些公司或者单位老旧性能羸弱的电脑。


Q:项目必须要使用命令行吗?你这不是 GUI 程序模板吗?

A:命令行只是最简单的使用方式之一,我还提供了 VSCode 和 JB 等主流 IDE 的运行和调试配置。并且 UI 文件的设计可以直接通过 QtDesigner 直接拖拉设计,所见即所得,生成出的 UI 文件也会被自动转换成所需的 Python 文件,不需要手动干预。


Q:有没有现成的项目预览康康呢?

A:有的兄弟,有的。以下图片已做脱敏处理:

使用

pyside_template

可以直接 fork 或者 use this template 直接创建你的项目,clone 完成然后直接运行 uv sync 就配置完成了,使用 VSCode 或者 PyCharm 直接运行吧。(前提是已经安装 uv 噢)


最后忘了说了,还整合了 gha 和 gitlab pipeline ,无论是用公开仓库还是自部署都能享受模板 CI/CD 提供的测试与自动部署/发布。可能更多是符合我的需求,不喜勿喷。如果你喜欢或者能帮到你的话请点个 star 吧。

1389 次点击
所在节点    分享创造
2 条回复
xhawk
6 天前
感谢楼主的分享, 我本来一直也想构建这么一个东西, 你的这个东西我已经跑起来了. 不过对于 UI 这块, 我自己有点犹豫不决, 其实还有一个思路是采用 electron+next.js 的方案, 不知道这个 py 的方案, 这个这个主要差异是什么?

或者有研究过的? 我更多关注的是 macos, windows, linux 可以不用反复搞.
SHIINASAMA
6 天前
@xhawk Electron 有一个很大的优势,就是背靠 Web 庞大的生态,单论 UI ,这块就能轻松玩出花来。我的项目一开始也考虑过 UI 问题(反观我们单位里大多数 XP 时代的软件),而且我本身也有一定的 Electron 应用开发经验。但最终考虑到单位电脑性能偏低,开个浏览器都卡,所以还是需要注意性能。如果不考虑性能问题,Electron 会更好,也更符合你更关注的方向。

实际上,这个项目并没有深入使用 Qt 的特性,更多是把整个开发流程打通了。UI 的很多东西都是附带的,也可以去掉,完全可以用自己喜欢的主题。只要有一些 UI 开发经验和 Python 基础,就基本够用了——界面也可以直接拖拽设计。我使用下来,基本可以专注处理业务逻辑。顺便提一下,我的业务本身对性能也有要求,这也是技术选型时需要考虑的因素之一。

至于平台支持,我实在不想再折腾 mac 虚拟机,所以干脆没测试。理论上大部分组件都是跨平台的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1162972

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX