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的设计模式编程入门指南
Apr 02 Python
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
Python对象转JSON字符串的方法
Apr 27 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
python 命令行传入参数实现解析
Aug 30 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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汉字转换拼音的类
2013/06/18 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
浅谈Python中的闭包
2015/07/08 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Python yield与实现方法代码分析
2018/02/06 Python
python pandas库的安装和创建
2019/01/10 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python字符串反转的四种方法详解
2019/12/02 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
sklearn+python:线性回归案例
2020/02/24 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
详解Python 循环嵌套
2020/07/09 Python
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
计算机学生求职信范文
2014/01/30 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
标准化管理实施方案
2014/02/25 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
红与黑读书笔记
2015/06/29 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
手写实现JS中的new
2021/11/07 Javascript