如果你是 Python 开发者,想做一个简单的桌面应用,PySimpleGUI 一直是最容易上手的选择。但几年前它转为商业许可后,很多开发者不得不转向其他方案。好消息是:PySimpleGUI 6 于 2026 年 4 月正式回归 LGPL3 开源许可。
PySimpleGUI 的前世今生
PySimpleGUI 的许可证变化历史:
- V4 版本:LGPL3 开源许可(开源阶段)
- V5 版本:商业许可(商业化阶段,需要付费)
- V6 版本:重回 LGPL3 开源许可(回归开源)
V5 商业化期间,PySimpleGUI 关闭了服务器、归档了商业材料。V6 不仅恢复了开源许可,还把 V5 期间的所有 bug 修复和新功能都开放了出来。
PySimpleGUI 能做什么
PySimpleGUI 的核心价值是:用最简单的 API 创建桌面 GUI 应用。它封装了四大 GUI 后端:
- tkinter:Python 自带,无需额外安装
- Qt:功能最强大,适合复杂应用
- WxPython:原生外观
- Remi:Web 界面,用浏览器显示
同一个 API,换一个 import 就能切换后端。对于新手来说,只需要从 tkinter 开始就够了。
安装方法
# 从 PyPI 安装
python -m pip install PySimpleGUI
# 从 GitHub 安装最新版
python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master
快速上手示例
import PySimpleGUI as sg
# 定义布局
layout = [
[sg.Text('请输入你的名字:')],
[sg.Input(key='-INPUT-')],
[sg.Button('确定'), sg.Button('取消')],
[sg.Text('', key='-OUTPUT-')]
]
# 创建窗口
window = sg.Window('我的第一个 GUI 程序', layout)
# 事件循环
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, '取消'):
break
if event == '确定':
window['-OUTPUT-'].update(f'你好,{values["-INPUT-"]}!')
window.close()
这段代码创建了一个带输入框和按钮的窗口。输入名字后点确定,会显示问候语。整个过程不到 20 行代码。
实际应用场景
1. 快速原型
需要一个简单的配置工具、数据查看器、或者测试界面?PySimpleGUI 可以在几分钟内搭出来。
2. 工具脚本的 GUI 包装
如果你有一堆命令行脚本,想给它们加个简单的界面方便同事使用,PySimpleGUI 是最快的方式。
3. 学习 GUI 编程
PySimpleGUI 的 API 设计非常直观,适合作为 GUI 编程的入门学习。等你熟悉了基本概念后,再转向 Qt 或其他更专业的框架。
4. 内部工具
公司内部的数据录入、审批流程、报表查看等工具,不需要多漂亮的界面,但需要能用——PySimpleGUI 非常适合。
V6 有什么新东西
- 回归 LGPL3:最大的变化,可以免费用于商业项目
- V5 的所有功能:多年商业化期间的改进全部开放
- 移除商业组件:升级机制和商业许可相关代码被清理
- 配套工具更新:psgdemos、psgfiglet、psghotkey 等配套工具都升级到 V6
与其他 Python GUI 框架的对比
| 框架 | 上手难度 | 功能 | 许可 |
|---|---|---|---|
| PySimpleGUI | ★☆☆☆☆ | 中等 | LGPL3 |
| tkinter | ★★☆☆☆ | 基础 | Python 许可 |
| PyQt / PySide | ★★★☆☆ | 强大 | GPL / LGPL |
| Kivy | ★★★☆☆ | 移动端友好 | MIT |
| Dear PyGui | ★★☆☆☆ | GPU 加速 | MIT |
PySimpleGUI 的优势在于上手极其简单,劣势在于功能不如 Qt 强大、性能不如 Dear PyGui。但对于「快速做一个能用的界面」这个需求来说,它是最好的选择。
注意事项
- PySimpleGUI V6 需要 Python 3.6+
- tkinter 后端在某些 Linux 发行版上可能需要额外安装(
sudo apt install python3-tk) - LGPL3 许可允许在商业项目中使用,但修改 PySimpleGUI 源码后需要开源修改部分
- GitHub 上的版本可能比 PyPI 上的更新,建议从 GitHub 安装
本文参考来源:
© 版权声明
THE END














暂无评论内容