10–PyGUI
Python GUI 项目,又名PyGUI框架,是一个简单的 API,供开发人员使用 Python 应用程序的本机元素创建用户界面。作为一个轻量级的 API,应用程序和目标平台之间不需要很多代码,这使得它比这个列表中的许多其他框架更高效。
优点:
- 文档全部用 Python 编写
- 在 Python 2 和 3 中可用
- 支持其他 Python 扩展,如 OpenGL 和 GTK
- 跨平台
- 开源
- 通过 pip 轻松安装
限制:
9-蜡
Wax是 wxPython 的包装器(请参阅此列表中的#3)。它提供与 wxPython 相同的功能,但用户友好得多。我还在这篇文章的底部提供了一个如何使用 Wax 的示例。
优点:
限制:
8–Pyforms
Pyforms- GUI 是构成 Pyforms 主库一部分的软件层,其中还包括 PyForms-Web 和 PyForms-Terminal。Pyforms 是 Windows 窗体的 Python 实现,它允许您为 Windows GUI 模式、Web 模式和终端模式开发交互式界面。
优点:
- 开源
- 跨平台
- 它具有最小的 API,因此只需几行 Python 代码即可轻松定义接口
- 您还可以轻松编写高级功能代码
- 代码被组织成模块,准备好被其他应用程序重用
- 简化应用维护
- 快速简单的原型设计
- 低学习曲线
- 使用 pip 轻松安装
限制:
- 仅适用于 Python3,并且未预装
- 不适合处理表单中的大量数据字段
- 显示记录属性值,但不支持调用被浏览对象的方法函数
- 它不能显示动态计算的属性
7–PySimpleGUI
PySimpleGUI创建于 2008 年,旨在使 Python 中的 GUI 开发更易于访问。名字里有什么?好吧,正如名字所暗示的那样,这是一个专门为 Python GUI 开发的绝对初学者编写的 GUI 框架。
优点:
- 开源
- 跨平台
- 蟒蛇3
- 易于通过 pip 安装
- 简单易学
- 提供大量文档和教程,是开始学习 GUI 设计的好方法
限制:
6–图书馆
Libavg是一个很棒的 Python GUI 框架,专门用于构建基于触摸的界面。它是用 C++ 构建的,可实现快速执行时间,这在处理基于触摸的界面时是必需的。
优点:
- 开源
- 跨平台
- 支持触摸屏的通用驱动程序
- 广泛的功能,包括相机和动画支持,以及 GPU 效果和文本对齐
- 为不同的可视化操作技术提供屏幕布局引擎
- 同时支持 Python 2.7 和 3
限制:
5–基维
Kivy是一个跨平台的开源 Python 库(基于 Python 和 Cython),专为快速开发具有复杂 UI 的应用程序而设计,例如多点触控应用程序。Kivy 可在 Linux、Windows、OS X、Android、iOS 和 Raspberry Pi 上运行,您可以在所有这些平台上运行相同的代码。
“一次编码,在多个平台上运行”加上强大的图形技术(对 OpenGL ES 2 的内置支持)的使用相结合,使该框架适合 iOS 和 Android 应用程序的设计人员。
优点:
限制:
4–PySide2
PySide2是 Qt for Python,为 Qt 提供官方 Python 绑定。这使得在 Python 应用程序中使用 Qt API 以及绑定生成器工具 (Shiboken2) 以在 Python 中公开 C++ 项目成为可能。
Qt 被认为是衡量所有其他 Python GUI 框架的 GUI 设计标准。因此,PySide2使 Python 开发人员能够访问经过验证的工具和库集合,以快速灵活地创建用户界面。
优点:
- 通过 pip 轻松安装
- 同时支持 Python 3 和 Python 2.7
- 跨平台
- 广泛的社区支持和文档
- 被 TomTom 和 Mercedes 等知名公司使用
限制:
- 未预装 Python
- 在 LGPL 下获得许可,这使得它在商业应用中的使用受到质疑,因为您需要提供源代码
- Python 2.7 版本仅适用于 64 位版本的 MacOS 和 Linux。仅在 Python 2 上提供 Windows 32 位支持。
3–WxPython
wxPython是一个跨平台的 GUI 工具包,您可以使用它以简单易行的方式创建健壮、实用的 GUI。该实现是一组 Python 扩展模块,它们包装了 wxWidgets 跨平台库的 GUI 组件,该库是用 C++ 编写的。
wxPython 创建本机用户界面,为应用程序增加零额外开销,为您提供功能库的功能而没有负担。
优点:
- 开源
- 跨平台
- 同时支持 Python 2.7 和 3
- 使用简单
- 使用 pip 顺利安装
限制:
2–Tkinter
Tkinter是 Tcl 和 Python 标准 GUI 框架的组合,为您提供了为您正在处理的任何应用程序创建丰富 UI 所需的所有小部件,但它特别适合开发桌面应用程序。
优点:
- 如果您使用的是最新版本的 Python,则很可能已经安装了 Tkinter
- Tkinter 提供了大量众所周知的小部件,包括所有最常见的小部件,如按钮、标签、复选框等。
- 向每个小部件添加代码非常简单
限制:
- 基本的 Tkinter 小部件很好,但您需要确保您的 Tkinter 版本也支持扩展的 Ttk 小部件集
1–PyQt5
PyQt5是 Python 编码人员和 UI 设计人员都使用的非常著名的 GUI 框架。其中一个组件 PyQt 包是围绕 Qt 框架构建的,Qt 框架是一种领先的跨平台 GUI 设计工具,几乎适用于任何类型的应用程序。PyQt5 包有一组详细的基于 Qt 应用程序框架最新版本 (v5) 的 Python 绑定。它还为连接到数据库提供 SQL 支持。
使用 QtGUI 和 QtDesigner 模块创建 GUI 非常容易,提供了大量的可视化元素,只需拖放小部件即可实现。
优点:
- 用于实现视觉元素的拖放功能
- 将代码添加到视觉元素,以创建小型和大型应用程序
- 跨平台支持 Windows、Mac、Android 和 Raspberry Pi
- 使用 pip 轻松安装
限制:
- 不是免费的!PyQt5 需要您购买商业许可证。
- 未预装 Python
- 仅支持 Python 3
结论:哪个 Python GUI 框架最好?
长话短说:这取决于您的需求!例如:
- 对于绝对初学者:我建议从 PySimpleGUI 开始。这个框架很容易遵循,并且有很多文档可以帮助您了解使用 Python 进行 GUI 设计和开发。
- 如果您发现 PySimpleGUI 过于局限:尝试一些更完整的东西,比如 wxPython。它在易于使用的框架中提供了一组更好的控件,尽管它的包装器 (Wax) 对用户更友好。任何一个都可以比 PySimpleGUI 更上一层楼——选择权在你。
- 以设计为中心的程序员:热衷于 GUI 设计?尝试 PyQt5、Tkinter 或 PySide 2。所有这些都将为您提供非常灵活的控件,因此您可以构建您梦想中的 UI。但是,请记住 PyQt5 和 PySide 2 将要求您购买许可证。
- 触摸屏用户界面:需要触摸屏应用程序的用户界面吗?Kivy 和 Libavg 是你最好的选择。如果快速执行时间对你很重要,我会推荐 Libavg。另一方面,如果视觉设计至关重要,请坚持使用 Kivy。
- 表单驱动的 UI:如果你的应用程序是表单驱动的,Pyforms 是一个不错的选择。否则 Pyforms 很难推荐。
- Python 2:如果您仍在使用 Python 2,您可以尝试许多 GUI 框架,包括 PyGUI、PySide 2 和 wxPython。但是,您应该知道 Python 2 不再受到 Python 软件基金会或 Python 社区的官方支持。如果您需要 Python 2 支持,请查看我们的扩展支持。
对我来说,最好的 UI 框架是 Wax,它是 wxPython 的用户友好版本。它具有用于 GUI 开发的有效 Python 框架的所有特征,而没有许多更复杂解决方案的附加功能。但是,如果您需要高级图形和设计元素,那么您可能应该尝试 PyQt5、Tkinter 或 PySide 2。