您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

十个顶级Python 图形界面(GUI)框架供你选择

时间:2021-06-28 11:29:04  来源:  作者:机器学习与数据分析

你知道嘛

由于Python/ target=_blank class=infotextkey>Python越来越受欢迎,并得到广泛采用,它将成为2020年流行起来的编程语言。在牢固掌握Python编程基础之后,初学者面临的下一个挑战是构建用户界面。幸运的是,有很多Python框架专门帮助开发人员构建令人惊叹但高度直观的用户界面,以适应程序应用。

本文的目的是帮助那些正在努力寻找用Python中合适框架框来架构建交互式GUI的的人。

什么是GUI

图形用户界面(GUI)是用户打开应用程序或网站时看到的第一个东西,并与之交互。拥有一个良好的GUI能够帮助你提高平台的声誉和用户数量。用户界面通常包括许多视觉元素,如图标、按钮、图形、显示文本和其他几种输入形式,如复选框、文本输入框等。

十个顶级Python 图形界面(GUI)框架供你选择

 

所有这些元素的结合构成了你的应用程序或网站的用户体验的重要部分。这些视觉元素的输入可以来自通常的媒介,如键盘、鼠标和触摸屏。

最佳GUI Python框架

专注于完善用户界面是一件好事,但同样重要的是提供最好的用户体验,在不投入过多资源的情况下交付它也同样重要。Python有大量用于开发GUI的框架,我们在下面的列表中收集了一些最流行的Python GUI框架。

 

  1. PyQt5

PyQt包是围绕Qt框架构建的,Qt框架是一个跨平台框架,用于为各种平台创建大量应用程序。

与Qt5框架类似,PyQt5也是完全跨平台的。通过利用PyQt5的强大功能,开发人员可以为windowsmaclinuxIOSAndroid等平台构建应用程序。

在创建gui时,PyQt5提供了令人印象深刻的QtGui和QtDesigner模块,它们提供了许多可视化元素,开发人员可以通过简单的拖放实现这些元素。当然,也存在通过代码创建这些元素的选项,允许您轻松创建小规模和大规模的应用程序。Python的模块化以扩展的形式延伸到PyQt5,为您提供了比GUI构建多得多的特性。如果您喜欢这里看到的内容,可以使用“pip install PyQt5”命令尝试一下PyQt5。

十个顶级Python 图形界面(GUI)框架供你选择

 

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框架,并且可以轻松访问随之而来的各种视觉元素,从而创建直观的用户界面,而无需深入研究框架。这并不意味着经验丰富的开发人员只能访问他们喜欢的框架的简化版本,获得完整的本地功能的选项仍然存在。

十个顶级Python 图形界面(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。



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  Tags: Python  点击:(34)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  Tags: Python  点击:(19)  评论:(0)  加入收藏
工作中经常会用到对账单,一般我们都是用Excel进行汇总,每次总是有大量的重复工作,很是烦人,今天我教大家用python一键生成对账单,非常省事,再也不用加班加点了。 一、准备基础数据...【详细内容】
2022-06-29  Tags: Python  点击:(45)  评论:(0)  加入收藏
简介collections 是 python 的内置模块,提供了很多方便且高性能的关于集合的操作,掌握这些知识有助于提高代码的性能和可读性。常用功能namedtuple 功能详解namedtuple() 返回...【详细内容】
2022-06-29  Tags: Python  点击:(27)  评论:(0)  加入收藏
Ciphey 是一个使用自然语言处理和人工智能的全自动解密/解码/破解工具。简单地来讲,你只需要输入加密文本,它就能给你返回解密文本。就是这么牛逼。有了Ciphey,你根本不需要知...【详细内容】
2022-06-23  Tags: Python  点击:(60)  评论:(0)  加入收藏
本文将参考全国青少年软件编程等级考试Python编程一级标准,主要讲解for循环语句基础内容,如何简化代码等内容。重复的代码如何精简首先我们来看下在Scratch中2种方式来绘制五...【详细内容】
2022-06-23  Tags: Python  点击:(33)  评论:(0)  加入收藏
# -- coding: utf-8 --# @Time : 2022/6/20 11:05import xlrd, xlwt, osexcel_path = os.path.join(os.path.abspath(__file__), "../data/zentao_login_cookies.xlsx")clas...【详细内容】
2022-06-21  Tags: Python  点击:(38)  评论:(0)  加入收藏
import datetimeimport threadingimport timeimport keyboardimport scheduledef block_keyboard(): print("block...", datetime.datetime.now()) for i in range(15...【详细内容】
2022-06-08  Tags: Python  点击:(46)  评论:(0)  加入收藏
Python 3.11 pre-release已经发布。 更新日志中提到:Python 3.11 is up to 10–60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standa...【详细内容】
2022-05-20  Tags: Python  点击:(59)  评论:(0)  加入收藏
整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)试想一下:当你习惯于将所有照片、视频、文件等资料全部存在网盘,结果有一天官方提示,“你的账号因违规而被禁用”,再也无法登陆网盘时,你会是...【详细内容】
2022-05-18  Tags: Python  点击:(62)  评论:(0)  加入收藏
▌简易百科推荐
本篇文章主要介绍了使用MyBatis框架完成数据库的增、删、改、查操作。准备工作运行schema.sql和data.sql脚本文件中的 SQL 语句创建t_user表并添加部分测试数据。schema.sql...【详细内容】
2022-07-15  嗨皮汪小成    Tags:MyBatis   点击:(0)  评论:(0)  加入收藏
1 Hive基本概念Hive是一个构建在Hadoop上的数据仓库框架。最初,Hive是由Facebook开发,后来移交由Apache软件基金会开发,并作为一个Apache开源项目。Hive是基于Hadoop的一个数据...【详细内容】
2022-07-15  秃头Java人    Tags:Hive   点击:(2)  评论:(0)  加入收藏
今天给大家讲讲 SpringBoot 框架 整合 Elasticsearch 实现海量级数据搜索。一、简介在上篇ElasticSearch 文章中,我们详细的介绍了 ElasticSearch 的各种 api 使用。实际的项...【详细内容】
2022-07-15  java小悠    Tags: Elasticsearch   点击:(3)  评论:(0)  加入收藏
SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要...【详细内容】
2022-07-14  Java全栈知识体系    Tags:Swagger   点击:(2)  评论:(0)  加入收藏
一、部署准备安装数据库、jdk、nginx、域名证书1、下载 nginx,官方网址如下:http://nginx.org/en/download.html2、解压安装包到任意目录 如:G:\nginx二、前端部署1、打开前端...【详细内容】
2022-07-14  智慧魔法豆浆    Tags:vue   点击:(2)  评论:(0)  加入收藏
SpringBoot 内置支持的 Web 容器有 Tomcat、Undertow、Jetty 和 Netty。默认情况下,这些 Web 服务的 AccessLog 日志是不开启的,而 AccessLog 日志对于做接口统计尤为重要。如...【详细内容】
2022-07-13  BUG弄潮儿    Tags:AccessLog 日志   点击:(10)  评论:(0)  加入收藏
什么是Starterstarter 是springboot 的核心,每个starter负责实现特定的功能,使用者只需引入starter即可自动配置,无需关心框架整合带来的问题。Starter 项目结构src |- main...【详细内容】
2022-07-12  IT食者    Tags:SpringBoot   点击:(9)  评论:(0)  加入收藏
mybaits非必填项处理数据库表字段khzjyxqx为日期型,非必填, 前台页面如下: 后台mybaits处理如下: 如果不处理,当为空时khzjyxqx=&#39;&#39;时会报错。<update id="updatesave" pa...【详细内容】
2022-07-11  在水一方357159258    Tags:mybaits   点击:(10)  评论:(0)  加入收藏
关于过气网红编程语言 Ruby,我们此前曾发过一篇文章去回顾其大受追捧的过往,并讨论了它每况愈下的生存状态。不过人气并不能直接说明语言质量差,一方面 Ruby on Rails(用 Ruby...【详细内容】
2022-07-08  InfoQ    Tags: Web 框架   点击:(9)  评论:(0)  加入收藏
1、JWT的构成- 头部(header):描述该JWT的最基本的信息,如类型以及签名所用的算法。- 负载(payload):存放有效信息的地方。- 签证(signature):base64加密后的header、base64加...【详细内容】
2022-07-08  dream19    Tags:SpringBoot   点击:(10)  评论:(0)  加入收藏
站内最新
站内热门
站内头条