十大 Python GUI 框架比较

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

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

为什么 GUI 很重要?

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

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

为什么 GUI 框架很重要?

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

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

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

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

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

为了下载即用型 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。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值