Python小细节之Gui图形化界面库的对比和选择(一分钟版)

发布时间:2024年01月04日

引言

我想要把打包的python程序变得好看
交互起来变得简单
遂 图形化界面
然 相关的库有很多
所以 对比!
在这里插入图片描述

开整

8个图形化界面库

在Python中,有多种图形用户界面(GUI)库可以用来创建丰富的图形化应用程序。以下是一些主要的图形化界面库:

  1. Tkinter

    • Tkinter 是 Python 的标准 GUI 库,随 Python 标准库一起分发,不需要额外安装。
    • 它基于 Tcl/Tk 工具包,提供了基本的窗口、按钮、文本框、列表框、滑块等组件。
  2. PyQt / PySide

    • PyQt 是一个强大的跨平台 GUI 库,基于 Qt 框架。
    • PySide 是另一个基于 Qt 的库,与 PyQt 类似,但许可证有所不同。
    • 这两个库都提供丰富的组件和高级功能,适用于构建复杂的桌面应用。
  3. wxPython

    • wxPython 是一个用于构建本地外观和感觉的应用程序的跨平台 GUI 库,它封装了 C++ 的 wxWidgets 库。
  4. Kivy

    • Kivy 专注于开发触摸优化的应用,尤其适合移动设备和现代触摸屏操作,同时也支持桌面系统。
  5. GTK+ with PyGObject

    • GTK+ 是一个流行的跨平台 GUI 工具包,通过 PyGObject 绑定可以方便地用 Python 调用。
  6. PySimpleGUI

    • PySimpleGUI 是一个基于 tkinter、WxPython、Qt 和 Remi 等多个后端的简化版 GUI 库,易于上手。
  7. Remi

    • Remi 是一个使用 Python 编写的 Web GUI 库,允许你创建可部署为 Web 应用的桌面应用。
  8. Pyside6/PyQt6

    • 新一代的 PyQt 和 PySide 版本,基于 Qt6,支持更多的现代化特性和更好的性能。

优缺点分析

当然,以下是对上述提到的一些Python图形化界面库的简要优缺点分析和建议:

  1. Tkinter

    • 优点:Python自带的标准库,无需额外安装;跨平台支持良好;适合初学者入门学习。
    • 缺点:界面样式相对简单、老旧,对于复杂的现代GUI设计可能不够灵活;功能相对有限,不适合开发大型复杂应用。
  2. PyQt/PySide(Qt绑定):

    • 优点:功能强大,组件丰富;可创建专业级桌面应用;跨平台;与QML结合可以实现更酷炫的动画效果。
    • 缺点:学习曲线较陡峭;对新手来说可能较为复杂;需要额外安装,并且商业使用时需要考虑许可证问题(PyQt有GPL和商业许可版本,而PySide2/LGPLv3则更为宽松)。
  3. wxPython

    • 优点:跨平台,提供本地化外观和感觉;丰富的组件集;社区活跃。
    • 缺点:更新速度相对较慢;部分特性可能不如Qt或GTK+先进;文档相对于其他一些库来说不那么全面。
  4. Kivy

    • 优点:专为触摸设备优化,适用于移动应用和游戏开发;基于OpenGL,性能好;创新的事件驱动模型。
    • 缺点:主要用于移动端和平板电脑,桌面应用上可能不太适用;对于传统桌面应用开发者而言学习曲线较陡峭。
  5. GTK+ with PyGObject

    • 优点:跨平台,拥有现代化界面风格;与Linux系统集成度高;开源免费。
    • 缺点:在Windows和macOS上的用户体验相比原生应用略差;社区规模和资源相对较小。
  6. PySimpleGUI

    • 优点:简化了接口设计,易于快速创建GUI应用;同时支持多种后端;非常适合初学者和快速原型设计。
    • 缺点:由于是抽象层,其功能深度和灵活性可能不如直接使用底层框架;高级定制能力受限。
  7. Remi

    • 优点:基于Web技术构建GUI,可以轻松部署到Web服务器并远程访问;轻量级;不需要浏览器插件即可运行。
    • 缺点:不是传统的桌面应用,无法利用本地操作系统特性;可能不适合需要大量本地硬件交互的应用。
  8. Pyside6/PyQt6

    • 优点:基于Qt6,性能更好,功能更加强大;延续了Qt系列的优点,提供丰富的API和组件。
    • 缺点:新版本的兼容性和稳定性需根据实际项目需求评估;依然存在许可证问题。

建议:

  • 对于初学者或者小型项目,可以从Tkinter开始学习,因为它的学习门槛较低。
  • 如果你计划开发复杂的桌面应用,并希望具有良好的跨平台表现和丰富的UI组件,可以选择PyQt(如果关心许可证问题的话,选择PySide)。
  • 若你的目标是在触摸设备上开发应用,或是涉及高性能图形渲染,Kivy才是你的选择。
  • 考虑到将来有可能将应用部署到Web环境,Remi可以作为一个备选项。

结尾

我选择了tkinter
在这里插入图片描述

原因两点:
自带轻量
初学对界面要求不高,且看到github上已经有好看的tk库后续可以进一步优化
在这里插入图片描述

那么
有缘再见!

文章来源:https://blog.csdn.net/qq_39471885/article/details/135384943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。