转自:https://zhuanlan.zhihu.com/p/347290491?ivk_sa=1024320u

图形界面的定义

图形界面
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。

说人话就是你拿鼠标箭头点来点去的界面,点开计算器图标就跳出个计算器等。

Python的GUI工具

Python作为一个容易上手,简单方便的编程语言,第三方的优秀工具数不胜数,在GUI这个方向同样是有很多的工具可以使用,比较常用的工具无非是TkinterwxWidgetsQtGtk+、KivyFLTKOpenGL这几个,但是除了这几个之外还有不少的工具。接下来我会按照常用工具,跨浏览器工具,跨平台工具,特定平台工具和GUI设计工具进行分类,进行一个全面的介绍,这篇文章主要参考维基百科和各个平台的相关介绍。

最常用的GUI工具

Tkinter

主页链接https://docs.python.org/3/library/tk.html
简介:Tkinter Python 的标准 Tk GUI 工具包的接口,可以在大多数的 Unix 平台下使用, 同样可以应用在 Windows 和 Mac 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

优点:是python的内置库,无需额外下载,不存在兼容问题,且又非常详细的说明文档。
缺点:实现效果较为普通

wxPython

主页链接https://www.wxpython.org
简介:wxPython是一个创建桌面GUI应用的跨平台工具包(toolkit),它的主要开发者是Robin Dunn。使用wxPython,开发者可以在Windows、Mac和多种Unix系统上开发应用程序。

优点:是一个免费的,可移植的GUI类库,用C++编写,可在Windows,Mac OS X,GTK,X11等许多平台上使用。可用于多种语言,包括Python,Perl,Ruby等。
缺点:设计的界面美观程度和灵活性较为普通

PyQT

主页链接https://docs.python.org/3/library/tk.html
简介:PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一。 PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。

优点:功能非常强大,可以用PyQt5开很漂亮的界面;另外它支持可视化界面设计,对新手非常友好。什么意思呢,就是你可以通过拖动一些模块就可以完成一些代码才能完成的工作,就跟C++的QT是一样的。

缺点:学习起来有一定难度。

PyGtk

主页链接https://docs.python.org/3/library/tk.html

优点:跟PyQt一样,可以实现很不错的效果,但是稍逊于PyQt,并且同样有UI设计工具Glade

缺点:更适合GNOME平台。

Kivy

主页链接https://kivy.org/#home

优点:Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。 Kivy 可以运行于 Windows, Linux, MacOS, Android, iOS 等当前绝大部分主流桌面/移动端操作系统。 Kivy 基于 Python,界面文件和程序文件相互分离的设计思路,设计简洁优雅,语法易学,适合新人入门。
缺点:缺点只有一个中文文档还是特别全面,大多数教程还是英文版本。
推荐学习资料
Kivy中文教程
Github Kivy项目

FLTK

主页链接https://pyfltk.sourceforge.io/

优点:一个致力于跨平台,快速开发,轻量化和容易使用的python GUI工具。
缺点:中文资料极为罕见。

OpenGL

主页链接https://pypi.org/project/PyOpenGL/
简介:OpenGL 是 Open Graphics Library 的简写,意为“开放式图形库”,是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API)。OpenGL 不是一个独立的平台,因此,它需要借助于一种编程语言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL。

优点:功能极为强大,几乎可以做出任何2D,3D图形。
缺点:学习难度较高,适合具有刚需的同学

DearPyGui

主页链接https://lawsie.github.io/guizero/

PySimpleGUI

主页链接https://pysimplegui.readthedocs.io/en/latest/

Guietta

主页链接https://guietta.readthedocs.io/en/stable/
这个是一个我觉得很优美的实现简单GUI的框架,推荐,不过中文文档很少。

PyGame

主页链接https://www.pygame.org/news

资源推荐https://www.zhihu.com/question/25960850/answer/330772593