按流行度、性能、上手难度、界面美观度、打包体积分类整理,附带适用场景,方便选型。
一、原生传统框架(内置 / 轻量,适合简单工具)
1. Tkinter
✅ 优势
Python标准库自带,无需额外安装;学习成本最低;开发小型工具首选。
❌ 劣势
界面老旧、原生样式丑;控件简单;高 DPI 缩放坑多;复杂界面开发繁琐。
📦 打包体积:很小(几 MB)
🎯 适用:简易脚本工具、小运维程序、学习 GUI 入门
2. wxPython
封装 wxWidgets C++ 库,跨平台 (Windows/macOS/Linux),原生系统控件。
✅ 原生系统风格,控件丰富;支持复杂布局
❌ 文档一般;新版本兼容性偶尔有问题
🎯 适合想要系统原生观感、中等复杂度桌面软件
二、现代主流框架(商业软件常用,界面美观)
1. PyQt / PySide(最强综合首选)
PyQt6 / PySide6(推荐 6 版本)
底层 Qt C++ 框架,工业级桌面框架,功能天花板。
- PyQt:开源协议 GPL,商用需要购买授权
- PySide6:LGPL 协议,可商用免费,优先选!
✅ 优点:
控件极其丰富;支持 QSS 样式表(类似 CSS 美化);支持多线程、绘图、表格、多媒体;Qt Designer 拖拽可视化 UI;跨平台;生态成熟大量案例。
❌ 缺点:打包体积偏大;API 偏多入门曲线中等。
🎯 适用:专业桌面软件、编辑器、运维工具、数据可视化客户端
2. Kivy
专为触控、跨平台设计,一套代码运行 Windows/macOS/Linux/Android/IOS。
✅ 移动端支持;界面自定义自由度极高;使用 KV 语言布局(类似前端 html/css)
❌ 桌面端默认控件风格不像原生软件;性能消耗略大
🎯 适合:需要打包成手机 APP、触控程序、多媒体交互软件
三、Web 技术栈方案(重点!前端开发者友好 ⭐)
核心原理:Python 后端逻辑 + HTML/CSS/JS 写界面
如果你熟悉网页前端,优先选这类!界面可以做到网页级精美。
1. Flet(微软推出,强烈推荐新手)
新一代框架,使用 Flutter 渲染界面,不用浏览器内核!
✅
- 一套代码跨 Windows/macOS/Linux/ 网页 / 移动端
- 布局语法简单,不用写 HTML;控件现代化;打包简单
- Python 直接写界面,无需单独学前端技术
❌ 生态还不如 Qt 成熟
2. PyWebView
内嵌系统浏览器内核,Python ↔ JS 双向通信。
✅ 体积适中;完全自由使用 Vue/React/HTML 开发界面
❌ 需要同时懂前端 + Python;窗口原生能力较弱(系统托盘、全局快捷键需要额外适配)
3. Streamlit(偏快速数据工具,不算纯正桌面)
本来是 web 框架,可借助streamlit-desktop打包桌面;
适合数据分析可视化原型,不适合通用客户端软件。
4. Eel
轻量版网页桌面框架,调用 Chrome 浏览器。
✅ 上手简单;前端页面自由开发
❌ 必须本地安装 Chrome;打包体积巨大
四、新兴轻量化现代化框架
1. CustomTkinter
Tkinter 增强美化库!低成本改造 tkinter
底层依然 Tkinter,提供圆角、暗色主题、现代控件。
✅ 迁移成本极低、学习简单;打包体积小
❌ 上限受 Tkinter 限制,超大型项目不合适
👉 适合:已有 tkinter 项目美化、中小型工具快速开发
2. NiceGUI
基于 Web,可运行网页,也能一键启动桌面窗口。
优势:快速搭建带图表、表格的管理工具,大量现成组件。
五、框架横向对比表
| 框架 | 界面现代化 | 商用友好 | 打包体积 | 上手难度 | 核心特点 |
|---|---|---|---|---|---|
| Tkinter / CustomTkinter | ★★★ | 免费 | 极小 | ⭐简单 | 轻量小工具 |
| PySide6 | ★★★★★ | LGPL 免费商用 | 较大 | 中等 | 工业级全能首选 |
| Kivy | ★★★★ | 免费 | 中等 | 中等 | 兼顾手机端 |
| Flet | ★★★★★ | 开源免费 | 中等 | ⭐简单 | Flutter 渲染,跨端 |
| PyWebView/Eel | ★★★★★ | 免费 | 大 | 较高 | HTML/Vue 前端开发 |
🎯 选型建议(直接照抄选择)
- 新手快速开发小型运维工具、脚本 GUI
👉 CustomTkinter - 做正式、稳定、功能复杂的商业桌面软件(首选)
👉 PySide6(PyQt6 备选,注意协议) - 你会前端 Vue/HTML,想用网页样式做客户端
👉 PyWebView - 不想学前端,想要高颜值、跨平台、最简单现代界面
👉 Flet - 未来需要同时打包 Windows 程序 + Android APP
👉 Kivy
补充关键知识点
- 打包工具(所有框架通用)
PyInstaller:主流打包 exe;
Nuitka:把 Python 编译成 C 二进制,防逆向、启动更快,推荐生产使用。 - 协议避坑提醒
- PyQt:GPL,闭源商用要付费授权
- PySide6、Flet、CustomTkinter、Tkinter:允许闭源商用,无授权费

