桌面开发之PyQt6、NiceGui、Wails对比

背景

前段接了一个足球盘口监控的桌面程序开发,当时简单选用NiceGui开发的,其实Python生态中桌面开发用PyQt6、PySide6也是挺常见的,加之本人对Go生态的Wails也用过,所以后来分别用PyQt6和Wails对程序的功能进行重写了一遍,本文基于该程序功能对三者进行一些对比。




技术栈与生态

PyQt6

NiceGui

Wails

  • 基于 Qt 6(C++ GUI 库),Python 的绑定
  • 成熟度最高,生态庞大
  • 适合纯桌面应用开发,跨平台能力强(Windows、Linux、macOS)
  • 基于 Python + Web 技术(FastAPI + Vue/Tailwind 渲染)
  • 用 Python 写前端/后端一体,自动生成现代网页 UI。更像是 Web 应用开发框架,而不是传统桌面 GUI
  • 适合快速构建管理后台、数据可视化面板、IoT 控制台
  • 基于 Go + Web 前端(默认 Vue/React/Svelte 之类)
  • 类似 Electron,但没有 Chromium 内核,体积小、性能高。用Go写后端逻辑,Web技术写界面,可以使用的前端UI库多。
  • 更适合 跨平台桌面应用,兼顾原生体验和现代前端 UI。

性能与体积

PyQt6

NiceGui

Wails

  • 启动速度快,接近原生体验,内存占用小
  • 运行时依赖 Qt 库,打包体积较大
  • 启动速度稍慢,性能一般
  • 依赖Python运行环境,打包体积较大
  • 启动速度快、性能接近原生
  • 打包体积小

开发体验

PyQt6

NiceGui

Wails

  • Gui控件丰富、借助Qt Designer 等工具绘制更简单
  • 上手容易
  • 对纯Python开发者更友好
  • 纯Python绘制界面(有前端经验的话,会更简单)、界面现代
  • 入门简单
  • 对纯Python开发者友好
  • 界面可以使用各种前端UI库、前端框架,界面现代化
  • 不难,开发更灵活
  • 需要前端技能和Golang技能

最后:以足球盘口监控程序为例进行对比

技术栈

打包体积

启动时间

运行内存占用

PyQt6

36.2M

2.5秒

29.5M

NiceGui

37.4M

7秒

184.8M

Wails

15.9M

2.5秒

81.5M

关于我

一位大小厂都待过的大龄全栈程序员、独立开发者,厌倦了职场的套路、内卷,目前居家承接项目、技术支持、开发自有独立产品,为实现自由生活奋斗中,欢迎大家点赞、转发、关注我。

原文链接:,转发请注明来源!