你知道嘛
由于Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。
本文的目的是帮助那些正在努力寻找用Python中合适框架框来架构建交互式GUI的的人。
什么是GUI
图形用户界面(GUI)是用户打开应用程序或网站时看到的第一个东西,并与之交互。拥有一个良好的GUI能够帮助你提高平台的声誉和用户数量。用户界面通常包括许多视觉元素,如图标、按钮、图形、显示文本和其他几种输入形式,如复选框、文本输入框等。
所有这些元素的结合构成了你的应用程序或网站的用户体验的重要部分。这些视觉元素的输入可以来自通常的媒介,如键盘、鼠标和触摸屏。
更佳GUI Python框架
专注于完善用户界面是一件好事,但同样重要的是提供最好的用户体验,在不投入过多资源的情况下交付它也同样重要。Python有大量用于开发GUI的框架,我们在下面的列表中收集了一些最流行的Python GUI框架。
- PyQt5
PyQt包是围绕Qt框架构建的,Qt框架是一个跨平台框架,用于为各种平台创建大量应用程序。
与Qt5框架类似,PyQt5也是完全跨平台的。通过利用PyQt5的强大功能,开发人员可以为Windows、Mac、Linux、iOS、Android等平台构建应用程序。
在创建gui时,PyQt5提供了令人印象深刻的QtGui和QtDesigner模块,它们提供了许多可视化元素,开发人员可以通过简单的拖放实现这些元素。当然,也存在通过代码创建这些元素的选项,允许您轻松创建小规模和大规模的应用程序。Python的模块化以扩展的形式延伸到PyQt5,为您提供了比GUI构建多得多的特性。如果您喜欢这里看到的内容,可以使用“pip install PyQt5”命令尝试一下PyQt5。
2. Tkinter
Tkinter通常被大多数Python开发人员称为首选GUI工具包,创建Tkinter是为了给现代开发人员提供Tk GUI工具包的标准接口和它的Python绑定。在Tkinter的世界里,我们所熟悉的大多数可视化元素都被称为小部件,每个小部件都提供了不同级别的可定制性。
Tkinter被整合到当前所有主要操作系统的Python安装程序中,并提供了一系列我们确信你一定熟悉的常用元素。下面列出了一些视觉元素:
●Frame:为你的应用程序提供一个结构
●按钮:用于获取用户的输入
●复选按钮:用于进行选择
●标签:用于显示文本信息
●文件对话框:用于在应用程序中上传或下载文件
●画布:为绘制图形和情节提供空间
3. Kivy
Kivy是用Python和Cython混合编写的,它是一个开源GUI框架,用于构建一些最直观的用户界面,包括实现自然用户界面(NUI)的多点触摸应用程序。
有了Kivy,界面设计师可以编写一次代码并部署到多个平台,而内置的OpenGL ES 2支持允许他们使用现代和强大的图形和设计技术。Kivy GUI框架在现实世界中最常见的用法可以在我们的Android和iOS应用程序中看到。该框架的其他广泛实现可以在Linux、Windows、树莓派和Mac OS设备的用户界面中看到。按照网站上提供的安装说明,您可以轻松地将这个框架添加到您的环境中。
4. wxPython
wxPython本质上是一个Python扩展模块,充当wxWidgets API的包装器。wxPython允许Python开发人员创建不给应用程序增加额外开销的本地用户界面。wxPython的跨平台功能允许部署到Windows、Mac OS、Linux和基于unix的系统上,几乎不需要做任何修改。
开发人员二人组后来发布了Project Phoenix,作为wxPython的继承者,并支持Python 3。它是从头构建的,以提供wxWidgets工具包的更简洁的Python实现。如果您有兴趣尝试这个框架,您会很高兴地知道最新的更新v4.1.1已经将它添加到Python包索引中。随着PyPI的加入,“pip install wxPython==4.1.1”命令的下载变得更加流畅。
5. Libavg
由Ulrich Von Zadow用c++编写的开源Libavg GUI框架使用Python作为脚本语言,是为现代触屏设备开发用户界面的更佳框架之一。图像密集型的部分,如视频解码、视觉效果和合成,都是通过OpenGL和GPU着色器实现的硬件加速来处理的,以提供平滑和丰富的图像视觉效果。
libavg支持大多数常用的触摸驱动程序,并提供一系列功能,如摄像头支持,文本对齐,动画支持,GPU效果,如模糊,阴影,等等。还有一个高级的屏幕布局引擎,为视觉元素提供旋转、缩放、裁剪、混合模式和其他操作技术。
libavg是用c++构建的,以确保难以置信的快速执行时间,希望应用程序获得绝对更佳性能的开发人员不会对它失望。你可以在他们网站的下载页面上找到安装说明。
6. PysimpleGUI
这个框架的名称难道不是完全暴露了它要做什么吗?回到这个主题,那些刚开始使用Python应用程序开发的人可能会在一开始发现很多Python GUI框架令人生畏。Mike B.在2018年创建了PySimpleGUI,使Python新手更容易进入GUI开发,而无需花费太多时间进入可用的更高级GUI开发选项的复杂性。
PySimpleGUI采用了4个广泛流行的Python GUI框架,包括Qt、Tkinter、WxPython和Remi,并通过实现大多数样板代码降低了它们的难度。结果呢?
初学者可以选择自己喜欢的GUI框架,并且可以轻松访问随之而来的各种视觉元素,从而创建直观的用户界面,而无需深入研究框架。这并不意味着经验丰富的开发人员只能访问他们喜欢的框架的简化版本,获得完整的本地功能的选项仍然存在。
7. PyForms
PyForms GUI框架是一个Python软件层,其核心是广泛著名的Windows窗体,它允许开发人员创建一些惊人的、高度交互的用户界面。PyForms的跨平台功能使开发人员可以更容易地为多个平台创建应用程序,只需对代码进行少量更改,消除了不必要的慢化。PyForms提供了几个流行的以图形为中心的库的实例,如PyQt、OpenGL等,以帮助开发人员为他们的应用程序创建用户界面。
PyForms库分为3个不同的部分,包括PyForms- gui、PyForms- web和PyForms-终端。每一层都允许在Web、终端和Windows GUI中执行PyForms应用程序。通过对模块化的关注,PyForms变得非常适合快速创建原型,它还可以缩短应用程序后期阶段的维护工作。安装是通过“pip install pyforms”命令来处理的,该命令会添加所有这三个库,或者如果您想单独使用这些库,也可以这样做。
8. Wax
还记得我们前面讨论过的wxPython框架吗?就像wxPython是wxWidgets GUI工具包的包装器一样,wax GUI框架是wxPython更加友好的包装器。像其他流行的框架一样,wax也是作为Python的扩展模块实现的。对于那些想知道的人来说,是的,wax支持构建跨平台应用程序。
wax背后的理念是通过移除wxPython的底层功能,为应用程序开发人员提供更简单的访问Python元素和对象的方式来构建gui。由于底层平台wxWindows非常高效,所以wax GUI框架在使用平台提供的本机小部件时,具有相同的效率和速度。
9. PySide2
PySide2是由提供给我们广泛流行的应用开发框架Qt的同一家公司构建的,仔细观察,你会遇到术语“Qt for Python Project”,这只不过是移植PySide来支持Qt5的任务,而框架本身现在被称为PySide2。
它现在被称为Qt for Python项目的官方跨平台Python模块。该项目为Python开发人员提供了一个经过验证的工具和库的集合,用于快速和灵活地创建令人惊叹的用户界面工具,Qt5和以上所提供的。
PySide2还为寻找它的开发人员提供了强大的社区支持。PySide2的文档部分被划分为教程、视频指南、示例、API文档等区域,以广泛地涵盖框架中包含的各种主题。AMD的Radeon控制软件、奔驰Mini Cooper的驾驶舱娱乐解决方案和TomTom的导航系统都是在Qt上运行的高科技和现代的例子。
10. PyGUI
Python GUI项目,或者更常见的PyGUI框架,是一个简单的API,它允许开发人员使用Python应用程序的本地元素创建用户界面。作为一个相当轻量级的API, PyGUI框架在Python应用程序和目标平台之间添加的额外代码很少。PyGUI目前支持为基于unix的系统、Windows机器和Mac OS设备创建应用程序。
为了使开发人员更容易地进行应用程序开发,整个库的文档都是用Python编写的,从而不需要参考其他GUI库。PyGUI可用于Python 2和3,是的,它确实支持扩展,让你使用OpenGL和GTK。