python 界面库

发布于 2020-11-08  275 次阅读


综述

主流的 python 界面库如下:

根据[1]中所描述的 Python 界面框架,可以知道其基础的界面框架分为以下几个

  • tkinter
  • wxPython
  • PyGObject - 替代 pyGTK
  • pyGTK
  • pyQT - Qt
  • pySide - Qt
  • Kivy - OpenGL ES
  • PyGame - SDL
  • PyGlet
  • PySciter - sciter
  • PySimpleGUI - Qt,tkinter,wxPython

在 python 中可以使用 OpenGL 与 DirectX

详细内容

opengl

安装 opengl

python -m pip install PyOpenGL

tkinter

tkinter 中使用 OpenGL的话需要安装 togl 包,感觉不太好安装

wxPython

python -m pip install wxPython

wxPython 中提供了 GLCanvas 模块用于 OpenGL 开发
经过测试,发现开发简单且易用

PyGObject

PyObject 安装有点麻烦,暂时略过

PyQt5

PyQt5 是 riverbank computing 编写

PyQt的采用的是GPLv3许可证和需要购买版权的商业许可证发布的,该许可证允许开发专有应用程序,可以由开发者选择。

安装

python -m pip install PyQt5

PySide2

PySide2 是 qt 官方发行的

kivy

python -m pip install kivy

与 PyGame 类似,对 OpenGL 支持较好

pygame

主流的 python 小游戏开发框架

python3 -m pip install -U pygame --user
python3 -m pygame.examples.aliens

PySciter

是一个 html css 渲染引擎

总结

在 python 下有大量界面框架,由于 python 的脚本语言特性,相对的其提供了浏览器UI与应用程序UI 两套UI体系。

浏览器 UI

应用程序 UI

本次研究的 应用程序 UI主要是近期更新且广泛使用的UI框架

tkinter 是python 标准库内包含的 UI 框架,是平台原生的 UI,比较简单;因此若编写复杂界面时代码量会比较大;不过其 UI 效率尚可。

wxPython 是基于 wxWidget UI框架的python 版,相对 Qt 框架比较小;其界面也是平台原生界面。对比 tkinter 功能比较完善。

Qt - python 中的 qt框架主要有两个 pyqt 与 pyside
Pyqt 是 riverbank 发行的,就目前的使用体验来说没有 pyside2 完美
PySide2 是 Qt 官方发行的 python 版本,基本与 C++ 的 Qt 一致,功能比较全,当然体系也较为庞大。

Gtk - pyGtk 与 PyGObject 均是基于 Gtk UI 框架的,在linux上应该比较好,就目前来看安装比较复杂,不予考虑。

参考文献:

[1] GUI Programming in Python


朝闻道,夕死可矣