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

引言

我想要把打包的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库后续可以进一步优化
在这里插入图片描述

那么
有缘再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/320949.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础——进程初识(二)

1. 对当前目录创建文件的理解 我们知道在创建一个文件时&#xff0c;它会被默认创建到当前目录下&#xff0c;那么它是如何知道当前目录的呢&#xff1f; 对于下面这样一段代码 #include <stdio.h> #include <unistd.h>int main() {fopen("tmp.txt", …

2024 Nomachine 最简安装与使用指南

一、前言 二、Nomachine安装包的下载 1、Windows系统下Nomachine包的下载 2、Linux系统Nomachine的下载 &#xff08;1&#xff09;下载Nomachine安装包 &#xff08;2&#xff09;解压安装包 &#xff08;3&#xff09;添加权限 &#xff08;4&#xff09;下载安装包 三、在Wi…

SoapUI 压力测试全面指南

SoapUI 压力测试 SoapUI 想要进行 压力测试&#xff0c;就要使用其中的 LoadTest 功能。 创建 LoadTest LoadTest 能实现 压力测试 的效果&#xff0c;我们可以先创建 Test Suit&#xff0c;也就是测试套件&#xff0c;然后在 Test Suit 中去创建 LoadTest。 下图就是创建好…

【zk源码分析】

zk作为java分布式系统注册中心和配置中心的典范&#xff0c;一直在思考分析这么一个系统到底从哪里入手呢&#xff1f; zk在使用上是非常的简单&#xff0c;监听节点的变化即可。 一般是从哪里使用&#xff0c;就从哪里开始研究api。 客户端和zk断开时&#xff0c;我看到了一…

被低估的流量宝地,如何通过Reddit为Shopify店铺引流?

独立站店铺相对于电商平台来说&#xff0c;有一个运营难点那就是需要自主引流。做好引流&#xff0c;你的Shopify店铺也就成功了一半。Reddit作为国外知名的论坛平台&#xff0c;非常适合作为引流的阵地&#xff0c;许多人对这个网站尚不了解&#xff0c;接下来就为大家介绍如何…

亚马逊站内广告位置在哪设置?怎么设置广告位置?-站斧浏览器

亚马逊站内广告位置在哪设置&#xff1f; 亚马逊提供了多种广告类型&#xff0c;包括&#xff1a; Sponsored Products&#xff08;赞助产品&#xff09;&#xff1a;在搜索结果和商品详情页中展示。 Sponsored Brands&#xff08;赞助品牌&#xff09;&#xff1a;在搜索结…

人工智能大模型:定义、发展和应用

⭐简单说两句⭐ ✨ 正在努力的小新~ &#x1f496; 超级爱分享&#xff0c;分享各种有趣干货&#xff01; &#x1f469;‍&#x1f4bb; 提供&#xff1a;模拟面试 | 简历诊断 | 独家简历模板 &#x1f308; 感谢关注&#xff0c;关注了你就是我的超级粉丝啦&#xff01; &…

位运算 (运算符)

文章目录 位运算位运算概述位运算概览& 按位与&#xff08;AND&#xff09;| 按位或&#xff08;bitwise OR&#xff09;^ 按位异或&#xff08;bitwise XOR&#xff09;~ 按位非&#xff08;bitwise NOT&#xff09;<< 左移&#xff08;bitwise shift left&#xff…

WebSocket的优点和缺点:一文详解。

WebSocket 的优缺点 WebSocket 协议是一种双向通信协议&#xff0c;它使用单个 TCP 连接实现全双工通信&#xff0c;这使它比传统的 HTTP 协议更有效率。 WebSocket 优点 双向通信&#xff1a; WebSocket 协议支持双向通信&#xff0c;使服务器和客户端之间的通信更加方便和快…

【通讯录案例-登录功能-Segue Objective-C语言】

一、我们接下来呢,来说这个登录按钮的实现, 1.我们来实现一下这个登录按钮的一个功能啊, 比如说,当我点击“登录”了以后,我要跳到后边儿的那个TableView, 首先呢,我们来看一下示例程序,参考一下, 当我们上边这两个文本框都有值的时候, 当这两个文本框都有值了以后…

项目框架构建之4:基础类,公共扩展方法项目的构建

本文是“项目框架构建”系列之4&#xff0c;本文介绍基础类&#xff0c;公共扩展方法项目的构建。 为什么要构建基础类、公共扩展方法呢&#xff1f;因为我们在项目中经常会使用到一些常用的扩展方法&#xff0c;以及一些基础标准类。将这些公共标准的类放在基础项目Xejen中是…

分布式图文详解!

分布式理论 1. 说说CAP原则&#xff1f; CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c;Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;这3个基本…