一个简单好用的 PySide6 项目模板 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SHIINASAMA
V2EX    分享创造

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

  •  
  •   SHIINASAMA
    SHIINASAMA 11 天前 1631 次点击

    简介

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


    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 吧。

    5 条回复    2025-10-12 01:05:27 +08:00
    xhawk
        1
    xhawk  
       10 天前
    感谢楼主的分享, 我本来一直也想构建这么一个东西, 你的这个东西我已经跑起来了. 不过对于 UI 这块, 我自己有点犹豫不决, 其实还有一个思路是采用 electron+next.js 的方案, 不知道这个 py 的方案, 这个这个主要差异是什么?

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

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

    至于平台支持,我实在不想再折腾 mac 虚拟机,所以干脆没测试。理论上大部分组件都是跨平台的。
    FirerWire3
        3
    FirerWire3  
       4 小时 37 分钟前
    想请教一下 pyside6>=6.6.3.1 怎么支持的 Win7 ?我目前知道的是装 VxKex ,或者是使用修改版的库与低版本的库
    SHIINASAMA
        4
    SHIINASAMA  
    OP
       3 小时 49 分钟前
    @FirerWire3 在最初开发时我直接把打包的产物丢 Windows 7 虚拟机上是正常的,我找个时间测试一下当前的版本。如果要靠 VxKex 的话,更高版本的 PySide 和 Python 都能跑。
    SHIINASAMA
        5
    SHIINASAMA  
    OP
       2 小时 31 分钟前
    @FirerWire3 确实发现在在 Win7 已经跑不起来了,我找时间再另外看看
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     901 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 19:37 PVG 03:37 LAX 12:37 JFK 15:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86