当前位置: 首页 > news >正文

笔记 | Python环境下的GUI编程常用包

前言

Python的使用频率和范围越来越大,在一些开发工作中由于需要可视化的图形界面,常常需要进行图形用户界面(Graphic User Interface, GUI)开发。例如,目前最火热的大模型应用,常常是以一个网页界面进行操作和展示,从而免去了控制台或接口操作的复杂性。因此本文总结记录了我接触了解过的GUI开发相关工具和依赖库。

本文将Python开发中的GUI分为了原生GUI和Web GUI两大类,前者指的是以Windows或Android系统程序窗口的形式展示的界面,其界面风格受具体系统影响;后者是基于Web技术展示的网页界面,具有跨平台一致性的好处。此外为了原生GUI能够方便地移植到其他用户的系统进行使用,本文还简单介绍了可执行程序打包工具。

目录

文章目录

    • 前言
    • 目录
    • 原生GUI
      • Tkinter
      • wxPython [^2]
      • PyQT[^5]
      • PySimpleGUI [^7]
      • Kivy [^8]
    • Web UI
      • Streamlit [^9]
      • Gradio [^10]
      • NiceGUI [^11]
    • 可执行程序打包
      • Pyinstaller [^12]
      • Nuitka [^13]
    • Reference

原生GUI

Tkinter

Python中自带的免费开源GUI框架,无需额外安装即可使用。上手容易,使用简单,教程文档众多。具备可视化界面设计器 1。有较多的主题和美化资源。

wxPython 2

免费开源GUI框架,需额外安装使用。具备可视化界面设计器3 4。上手难度适中。


5

PyQT6

个人与商业双重许可的跨平台GUI框架,需额外安装使用。具备官方可视化界面设计器7。上手难度较高,功能也相对强大。

PySimpleGUI 8

Kivy 9

支持Windows, Linux, MacOS, Android和iOS的跨平台免费开源GUI框架,需额外安装使用。

Web UI

Streamlit 10

非常热门的Python Web UI框架,有非常多组件,具备对Dataframe的可视化支持,针对机器学习应用做了很多优化,社区活跃,界面简约美观,支持云部署。

Gradio 11

与Streamlit相似的非Python Web UI框架,同样非常适合机器学习应用。界面是简约的Hugging Face Style。

NiceGUI 12

相对Streamlit等更简单容易上手,界面非常简约。

可执行程序打包

Pyinstaller 13

免费开源的支持Windows, Linux和MacOS系统的应用程序打包工具,操作简单,应用广泛。

Nuitka 14

个人免费商用付费的跨平台应用程序打包工具,应用程序编译为C文件,代码效率与安全性有提升。

Reference


  1. https://github.com/ParthJadhav/Tkinter-Designer ↩︎

  2. https://wxpython.org/index.html ↩︎

  3. https://github.com/wxFormBuilder/wxFormBuilder ↩︎

  4. https://wxglade.sourceforge.net/ ↩︎

  5. https://www.yiibai.com/wxpython/wx_gridbagsizer.html ↩︎

  6. https://doc.qt.io/ ↩︎

  7. https://doc.qt.io/qtdesignstudio/studio-getting-started.html ↩︎

  8. https://www.pysimplegui.com/ ↩︎

  9. https://kivy.org/ ↩︎

  10. https://streamlit.io/ ↩︎

  11. https://www.gradio.app/ ↩︎

  12. https://nicegui.io/ ↩︎

  13. https://pyinstaller.org/ ↩︎

  14. https://nuitka.net/ ↩︎

http://www.lryc.cn/news/406405.html

相关文章:

  • mysql 数据库空间统计sql
  • 【Linux】线程——线程池、线程池的实现、线程安全的线程池、单例模式的概念、饿汉和懒汉模式、互斥锁、条件变量、信号量、自旋锁、读写锁
  • stm32入门-----TIM定时器(PWM输出比较——下)
  • css实现线条中间高亮,左右两边模糊(linear-gradient的运用)
  • 【数据结构】建堆算法复杂度分析及TOP-K问题
  • Thinkphp5实现前后端通过接口通讯基本操作方法
  • Go 语言任务编排 WaitGroup
  • 星环科技推出知识库产品 AI PC时代数据交互方式变革
  • 10道JVM经典面试题
  • Redisson常用的数据结构及应用场景
  • 【实现100个unity特效之8】使用ShaderGraph实现2d贴图中指定部分局部发光效果
  • Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程
  • XML 和 SimpleXML 入门教程
  • leetcode--链表类题目总结
  • 打卡第22天------回溯算法
  • Ubuntu对比两个文件内容有什么区别?
  • python:本机摄像头目标检测实时推理(使用YOLOv8n模型)
  • Spark实时(四):Strctured Streaming简单应用
  • SpringBoot上传超大文件导致OOM,完美问题解决办法
  • PyTorch 的各个核心模块和它们的功能
  • Java开发之LinkedList源码分析
  • 外卖霸王餐系统架构怎么选?
  • AV1技术学习:Transform Coding
  • Git操作指令
  • CSS 创建:从入门到精通
  • Windows 11 系统对磁盘进行分区保姆级教程
  • 探索WebKit的CSS盒模型:深入理解Web布局的基石
  • c++初阶知识——string类详解
  • php接口返回的json字符串,json_decode()失败,原来是多了红点
  • Python3网络爬虫开发实战(2)爬虫基础库