作为一名Python开发者,当你厌倦了命令行的交互开发式,你开始探索图形用户界面开发,图形用户界面(GUI)是用户打开应用程序或网站时看到的第一个东西,并与之交互用户界面通常包括许多视觉元素,如图标、按钮、图形、显示文本和其他几种输入形式,如复选框、文本输入框等。市面上有多种多样的图形用户界面框架,接下来我们主要围绕着易用性,功能性和文档丰富性来给大家推荐几款图形用户界面框架。

PyQt5/6

首先推荐的就是PyQt,PyQt是Qt的Python版本,而Qt是一种成熟的GUI开发框架,底层是由C++开发而成,采用PyQt开发GUI,后面可以进一步转C++开发Qt,因此,如果想要入手图形用户界面开发,PyQt是非常推荐的一款框架,需要注意的是,PyQt有两种许可协议,分别是GPLv3许可证和需要购买版权的商业许可证,GPLv3是强开源协议,意味着,如果你的应用程序里面使用了PyQt,那么你的程序必须开源,否则法院传票了解一下,因此如果想要闭源商用,必须购买Riverbank Computing公司的商业许可证,尽管如此,由于PyQt强大的功能,还是很多人用PyQt来进行GUI开发,也产生了丰富的文档,遇见不会的问题,随便一搜能搜出很多资料,目前PyQt已经研发出PyQt6了,PyQt6和PyQt5差别不大, 主要是一些小模块的升级和一些新功能,如果是新手推荐PyQt5,资料丰富,如果是老司机,推荐PyQt6,项目开发更友好。

易用性:★★

功能性:★★★★★

文档丰富性:★★★★★

PySide6

如果你既想享受Qt的强大功能,又想闭源商用,那么PySide完全适合你,说到PySide,就不得不说,Qt与PyQt之间的恩怨,Qt的研发公司是Nokia,Riverbank Computing公司使用Python封装了Qt研发出PyQt,而PyQt从诞生时就是GPLv3协议,因此Nokia与Riverbank Computing谈判,希望将PyQt的协议修改为LGPLv3,可以带来更多的商业用户,但是两个公司谈崩了,所以Nokia自己重新研发了Py版本的Qt也就是PySide,后来Nokia将Qt和PySide卖给了Digia公司,后来在Digia公司与开源社区的支持下,目前Pyside已经迭代到PySide6了,对应PyQt6,注意PyQt5的对应版本是PySide2,因为PySide推出的比较晚,因此第二代Pyside就对齐了PySide6。对于Pyside6,由于是官方推出的,并且可以闭源商用,PySide6与PyQt6之间区别不大,文档基本也是可以互相参考,因此还是比较强推PySide6的。

易用性:★★

功能性:★★★★★

文档丰富性:★★★★

wxPython

wxPython 是一个用于 wxWidgets (用C ++编写)的Python包装器,这是一个流行的跨平台GUI工具包。由Robin Dunn和Harri Pasanen共同开发,wxPython被实现为一个Python扩展模块。wxPython是免费且开源的GUI框架,它被允许使用在商业产品上,对比PyQt和PySide,功能相对弱一些,但是该有的功能也不会缺失,类似于PyQt和PySide的Qt Designer设计器,wxPython也提供了wxFormbuilder方便开发者进行界面设计。

易用性:★★★

功能性:★★★

文档丰富性:★★★

Tkinter

Tkinter通常被大多数Python开发人员称为首选GUI工具包,创建Tkinter是为了给现代开发人员提供Tk GUI工具包的标准接口和它的Python绑定,它的优点是简单无依赖,但这也是它仅有的优点,Tkinter的功能少且效果单一,此外由于是Python自带的包,因此前期入门学习门槛低,后期门槛高,但是学习资料很丰富,从Python开始学习GUI,可以很方便的做出成果,和PyQt以及wxPython一样,tkinter也有界面设计器,但是功能比较简洁。

易用性:★★★★★

功能性:★★

文档丰富性:★★★★★

PySimpleGUI

PySimpleGUI库是是2018年发布的个人开源维护项目,是基于Tkinter、Remi、wxpython、PyQt这些模块的,其中Remi模块是将应用程序的界面用HTML的形式来展现,所以这个包有个亮点就是你可以输入相应的代码将其转变网页形式展示,而其余包则都是用来做图形界面的。PySimpleGUI代码比直接使用底层框架编写更简单、更短,因为 PySimpleGUI 实现了大部分“示例代码”。,PySimpleGUI非常适合短平快的客户端编写。

易用性:★★★★

功能性:★★★★

文档丰富性:★★★

总体来说,没有最合适的框架,只有最适合你的框架,如果你想尝鲜,选择Tkinter,如果你想快速开发出成果,选择PySimpleGUI,如果你想要深入GUI框架,未来想做一些商业产品,选择PySide6。

除了上面几款GUI框架以外,市面还有很多,例如FlexxPyGUIKivy等等,但是从易用性,功能性和文档丰富性来说,都没有上面5款GUI好,因此这里没有做过多介绍,感兴趣的小伙伴可以自行百度查阅资料。

更多推荐

2022- 值得推荐的五款Python GUI框架