Python常用GUI框架原理解析汇总


Posted in Python onDecember 07, 2020

Graphical User Interface,简称 GUI,又称图形化用户接口,所谓的GUI编程,指的是用户不需要输入代码指令,只通过图形界面的交互就可以操作软件功能。

Tkinter

一个轻量级的跨平台图形用户界面(GUI)开发工具,是Python的自带的官方标准库,安装Python 之后直接导入就可以使用, 我们常见的python IDLE就是使用TKinter实现。

Python常用GUI框架原理解析汇总

它最大的特点就是上手简单, 做个简单的小工具基本够用了,比如登录,计算器,简单的输入输出工具等,缺点是不够美观,功能太单一。

Pyqt

QT是一个C ++编写的跨平台的框架。这是一个非常全面的库。1991年奇趣科技公司开发的C++ GUI应用程序,2014年发布了Qt5.3正式版。

PyQt是Qt库的Python版本,它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。

QT带来的最大好处就是它有一个QT Desiginer,这个设计器可以方便我们进行页面的布局,可以说在Tkinter里面需要一坨坨的代码完成的页面布局,在QT里面只要拖一拖控件就搞定了。

wxPython

wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。

wxPython开源免费,支持LINUX和WINDOWS,界面本地化好, 功能完善,它也提供类似QT Designer的设计器wxFormbuilder,可以说是个压缩版的QT。

PySide

使用“C++”语言编写的应用程序/用户界面(UI)框架。“PySide”是“Qt”的封装。与PySide的不同之处在于PyQt可以商用。

PyGUI

减少Python应用与平台底层GUI之间的代码量,面向Unix,Macintosh和Windows平台。

Kivy

基于OpenGL ES 2,能够让使用相同源代码创建的程序能跨平台运行。这个框架是事件驱动的,基于主循环,非常适合开发游戏。

Kivy拥有能够处理动画、缓存、手势、绘图等功能。它还内置许多用户界面控件如:按纽、摄影机、表格、Slider和树形控件等。

PyGTK -GTK

在Linux中常用的“GTK+”是“PyGTK”的“GTK +”封装。与Kivy和PyQt相比,它能不加修改的稳定运行在各种操作系统之上,如Linux,Windows,MacOS等。

Flexx

许多Python GUI库基于以其他语言编写的库,例如用C++编写的库有wxWidgets和libavg。但Flexx是用Python创建的,使用Web技术,也正因为如此 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行

CEF Python

基于Google Chromium,面向Windows,MAC OS和Linux,其主要用于在第三方应用程序中嵌入式浏览器的使用上

Dabo

一个跨平台的应用程序开发框架,基于wxpython的再封装库。它提供数据库访问,商业逻辑以及用户界面

Pyforms

一个用于开发GUI应用程序的Python 2.7 / 3.x跨环境运行框架。

PyGObject

可以为GNOME项目编写Python应用程序,你也可以使用GTK +编写Python应用程序。

关于框架的选择,没有最好的,只有最适合的。其他框架的具体使用和介绍,可以查看官方文档学习:

https://wiki.python.org/moin/GuiProgramming

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python json模块使用实例
Apr 11 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
详解python进行mp3格式判断
Dec 23 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
python实现二分类的卡方分箱示例
Nov 22 Python
Python基于requests实现模拟上传文件
Apr 21 Python
python学习将数据写入文件并保存方法
Jun 07 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
Python如何把不同类型数据的json序列化
Apr 30 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
Python函数式编程中itertools模块详解
Sep 15 Python
pycharm中leetcode插件使用图文详解
Dec 07 #Python
使用Python爬取Json数据的示例代码
Dec 07 #Python
如何利用python生成MD5并去重
Dec 07 #Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 #Python
python selenium 获取接口数据的实现
Dec 07 #Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 #Python
selenium判断元素是否存在的两种方法小结
Dec 07 #Python
You might like
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
理解javascript正则表达式
2016/03/08 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
管理工程专业求职信
2014/08/10 职场文书
2014年食堂工作总结
2014/11/20 职场文书
物资采购管理制度
2015/08/06 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫