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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python 变量类型详解
Oct 10 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
对python函数签名的方法详解
Jan 22 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
numpy求平均值的维度设定的例子
Aug 24 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
Python使用MapReduce进行简单的销售统计
Apr 22 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
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
jQuery 位置插件
2008/12/25 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
如何解决python多种版本冲突问题
2020/10/13 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
如何进行Linux分区优化
2016/09/13 面试题
超市5.1促销活动
2014/01/15 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
房屋授权委托书范本
2014/10/07 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
起诉离婚协议书样本
2014/11/25 职场文书