十大 Python GUI 框架比较

十大 Python GUI 框架比较_第1张图片

图形用户界面 (GUI) 是任何 Web 应用程序中最重要的部分之一。有人会说最重要的部分,因为今天的老练用户很快就会放弃可用性差的应用程序。Python 应用程序也是如此。新手 Python 程序员在掌握了 Python 编程的基础知识后,通常会尝试构建 GUI。那时他们发现框架对于有效的 GUI 开发是必不可少的,但是 Python 并不缺少 GUI 框架。问题很快就变成了,哪一个最适合您的应用程序?

要回答这个问题,我们首先必须知道为什么 GUI 对您的应用程序很重要。

为什么 GUI 很重要?

您的 GUI 是您的应用程序的第一印象。如果你希望成功,就不能给人留下糟糕的第一印象。您将需要许多不同的图形元素,包括按钮、复选框、切换开关、下拉列表、搜索字段、滑块、工具提示等等——用户与应用程序提供的功能进行交互所需的一切。随意放置或没有吸引力的小部件无助于第一印象。 

安全性和性能也是决定应用程序质量和用户体验的关键因素。您会希望您的应用程序既快速又安全,但又不想为此牺牲 GUI。如果用户无法有效地与您的应用程序交互,您的用户群就会受到影响。

为什么 GUI 框架很重要?

开发框架旨在让开发人员的生活更轻松。它们使特定类型的应用程序更易于创建,或特定语言更易于使用。Python 的 GUI 框架使得为您的应用程序开发用户界面比尝试在 Python 中手动编写代码要容易得多。  

现在您知道要寻找什么了,我将倒数我认为是前十名的 Python GUI 框架。对于每一个,我将讨论它们独特的卖点,包括: 

  • 为什么你应该考虑使用它们 
  • 每一个都提供独特的优势
  • 您应该注意的框架限制

开始之前:安装我们的 GUI 框架即用型 Python 环境

开始测试 GUI 框架的最简单方法是为Windows或Linux安装我们的 GUI 框架 Python 环境,其中包含一个 Python 版本和本文中列出的大部分包。

十大 Python GUI 框架比较_第2张图片

为了下载即用型 GUI 框架 Python 环境,您需要创建一个 ActiveState Platform 帐户。只需使用您的 GitHub 凭据或您的电子邮件地址即可注册。注册很简单,它可以为您解锁 ActiveState 平台的许多好处!

或者您也可以使用我们的 State 工具来安装这个运行时环境。

对于 Windows 用户,在 CMD 提示符下运行以下命令以自动下载并安装我们的 CLI、State Tool 以及 GUI Frameworks 运行时到虚拟环境中:

powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1'))) -activate-默认 Pizza-Team/GUI-Frameworks-Win”

对于 Linux 用户,运行以下命令自动下载我们的 CLI、State Tool 以及 GUI Frameworks 运行时并将其安装到虚拟环境中:

sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default Pizza-Team/GUI-Frameworks

10–PyGUI

Python GUI 项目,又名PyGUI框架,是一个简单的 API,供开发人员使用 Python 应用程序的本机元素创建用户界面。作为一个轻量级的 API,应用程序和目标平台之间不需要很多代码,这使得它比这个列表中的许多其他框架更高效。

优点:

  • 文档全部用 Python 编写
  • 在 Python 2 和 3 中可用
  • 支持其他 Python 扩展,如 OpenGL 和 GTK
  • 跨平台
  • 开源
  • 通过 pip 轻松安装

限制:

  • 未预装 Python

9-蜡

Wax是 wxPython 的包装器(请参阅此列表中的#3)。它提供与 wxPython 相同的功能,但用户友好得多。我还在这篇文章的底部提供了一个如何使用 Wax 的示例。

优点:

  • 开源
  • 跨平台
  • 便于使用

限制:

  • 未预装 Python

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 设计的好方法

限制:

  • 真的应该只用于简单的 GUI 开发
  • 缺少表单设计器

6–图书馆

Libavg是一个很棒的 Python GUI 框架,专门用于构建基于触摸的界面。它是用 C++ 构建的,可实现快速执行时间,这在处理基于触摸的界面时是必需的。

优点:

  • 开源
  • 跨平台
  • 支持触摸屏的通用驱动程序
  • 广泛的功能,包括相机和动画支持,以及 GPU 效果和文本对齐
  • 为不同的可视化操作技术提供屏幕布局引擎
  • 同时支持 Python 2.7 和 3

限制:

  • 未预装 Python

5–基维

Kivy是一个跨平台的开源 Python 库(基于 Python 和 Cython),专为快速开发具有复杂 UI 的应用程序而设计,例如多点触控应用程序。Kivy 可在 Linux、Windows、OS X、Android、iOS 和 Raspberry Pi 上运行,您可以在所有这些平台上运行相同的代码。

“一次编码,在多个平台上运行”加上强大的图形技术(对 OpenGL ES 2 的内置支持)的使用相结合,使该框架适合 iOS 和 Android 应用程序的设计人员。

优点:

  • 开源
  • 麻省理工学院执照
  • 内置小部件
  • 跨平台

限制:

  • 未预装 Python

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 顺利安装

限制:

  • 不是 MacOS 上预装 Python 的一部分

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。

你可能感兴趣的:(python,linux,开发语言)