Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
▍Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
Python的GUI库非常多,从控制台到桌面开发都有,对于一些工具类的软件开发起来非常不错,但是如果是大型项目可能就不太合适了。下面我介绍十几种库给你,当然我推荐最后一个,虽然它是今年才发布的,但是站在巨人的肩膀上,很看好它以后的潜力。
curses
内建的 ncurses 封装,用来创建终端图形用户界面。curses 库为基于文本的终端提供了独立于终端的屏幕绘制和键盘处理功能,在普遍使用图形显示界面的现在,在一些小众市场,例如嵌入式unix上能做出交互式更优雅的终端也是非常nice的。
enaml
enaml是一种能够让你用最小的努力就可以实现高质量GUI界面的的Python框架,也是一种独特的编程语言
enaml将声明性语言与基于约束的布局系统结合在一起,使用户可以轻松地定义灵活布局的UI。enaml应用程序可以在任何支持Python和Qt的平台上运行。
enaml具有如下特性:
一种具有Python风格的声明性编程语言
数十个小部件都可以直接在Qt上构建
基于约束的布局引擎(基于Kiwi构建)
与数据模型工具(基于Atom构建)集成
kivy
Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。
Kivy 可以运行于 Windows, Linux, macOS, Android, iOS 等当前绝大部分主流桌面/移动端操作系统。
Kivy 基于 Python,界面文件和程序文件相互分离的设计思路,设计简洁优雅,语法易学,适合新人入门。
pyglet
一个 Python 的跨平台窗口及多媒体库,可以进行游戏开发、音视频处理等,比pygame更轻量一些。
PyQt
跨平台用户界面框架 Qt 的 Python 绑定 ,支持 Qt v4 和 Qt v5,这是老牌的界面设计库了。
PySide
PySide和PyQt的区别,前者是Qt公司的产品,后者是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别,PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用
Tkinter
Tkinter 是 Python GUI 的一个内置的GUI标准库,其语法简单易学,适合初学者练手。
Toga
一个 Python 原生的,操作系统原生的 GUI 工具包
urwid
一个用来创建终端 GUI 应用的库,支持组件,事件和丰富的色彩等
WxPython
wxPython是一个用C ++编写的适用于Python的跨平台GUI工具包,它让Python程序员们能够简单、轻松地创建功能强大的图形用户界面的程序。它目前支持的平台包括Microsoft Windows、Mac OS X和macOS,以及Linux或其他具有GTK2或GTK3库的类unix系统。
PyGObject
PyGObject是一个Python包,它为基于GObject的库(如GTK、GStreamer、WebKitGTK、GLib、GIO等)提供绑定。这些库可以支持 GTK+3 图形界面工具集,因此时 GObject 提供了丰富的图形界面组件。它支持Linux、Windows和macOS。
Flexx
Flexx 是一个纯 Python 语言编写的用来创建 GUI 程序的工具集,它使用 web 技术进行界面的展示。应用程序完全用Python编写,PScript转译器动态生成必要的JavaScript。可以使用Flexx创建(跨平台)桌面应用程序,web应用程序,并将应用程序导出到独立的HTML文档。
Eel
Eel 是一个轻量的 Python 库,用于制作简单的类似于 Electron(但是比它更轻量) 的离线 HTML/JS GUI 应用程序,并具有对 Python 功能(capabilities)和库的完全访问权限。
Eel 托管一个本地 Web 服务器,然后允许您使用 Python 注释函数(annotate functions),以便可以从 JavaScript 调用它们,反之亦然。
PySimpleGUI
它是对tkinter,Qt,WxPython 和 Remi 的封装,通过实现大部分“样板代码”比直接使用底层框架编写更简单、更短。看名字就知道,易于使用,但是美观方面不是特别好。
pywebview
pywebview 是一个包含有 WebView 组件的轻量级跨平台应用容器,可以在原生GUI的窗口中显示HTML内容。脱离于浏览器在桌面应用程序中应用 Web 技术的强大功能,隐藏了 GUI 基于浏览器的事实。您可以在 pywebview 中使用像 Flask 或 Bottle 这样的轻量级 Web 框架,也可以单独使用 Python 和 DOM 之间的双向桥接。
DearPyGui
Dear PyGui是一个简单易用(但功能强大)的Python GUI框架。它不是一般意义上的Dear ImGui的包装,而是一个用Dear ImGui构建的库,它模拟了传统的保留模式GUI(相对于Dear ImGui的直接模式范例)。Dear PyGui与其他Python GUI的框架也有着根本的不同。在后台,Dear PyGui使用即时模式范例和你的计算机的GPU来促进极其动态的接口。Dear PyGui目前支持以下平台:Windows 10,macOs,Linux,Raspberry Pi 4。
EasyGUI
EasyGUI是一个用Python进行的非常简单、非常容易的GUI编程模块。它不同于其他GUI库,因为EasyGUI不是事件驱动的,相反,它所有的GUI交互都是通过简单的函数调用调用的,不要求程序员了解任何关于tkinter、框架、小部件、回调或lambda的信息。
flet
这就是我要重点推荐的库,它是一个框架,允许你用喜欢的语言构建交互式多用户web、桌面、移动端应用程序,虽然目前只支持Python开发,但是后面计划支持多语言,基于flutter,它会有非常好的发展前景。
总结
Python的GUI库非常多,我这里只是列举了一部分,但是常用的库就那么几种,选择主要还是从自身的条件来看,哪一种比较容易接受,比如我目前特别中意flet,主要原因还是它的布局方式和前端一样,我熟悉前端,所以这让我用起来非常舒适。有的人可能文档多的库,有的人在意资料多的库,看个人喜好吧
▍Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
Python进行GUI开发的库其实很多,下面我简单介绍几个不错的库,感兴趣的朋友可以自己尝试一下,实验环境win10+python3.6+pycharm5.0,主要内容如下:
tkinter
这个就不用多说了,python自带的GUI开发标准库,对于开发小型简单的应用来说,完全可以了,开源、跨平台,使用起来非常方便,下面我简单测试一下,主要代码如下:
点击运行程序,效果如下,一个窗口一个Label标签:
easygui
这个是基于tkinter的一个窗口GUI库,可以快速创建窗口对话框,包括常见的登陆对话框、注册对话框等,下面我简单介绍一下这个库的安装和使用:
1.首先,安装easygui,这个直接在cmd窗口输入安装命令“pip install easygui”就行,如下:
2.安装完成后,我们就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行这个程序,效果如下:
kivy
这是一个跨平台的GUI应用程序开发库,可以用来开发安卓、苹果应用,一套程序,可以处处运行,下面我简单介绍一下这个库的安装和使用:
1.首先,安装kivy,这个直接按官方教程安装就行,如下:
2.安装完成后,就可以直接编写代码进行测试了,主要代码如下,非常简单:
点击运行程序,效果如下,这里你可以将其打包为手机应用,安装到手机上:
wxpython
这也是一个免费、跨平台的Python GUI开发库,相比较前面的tkinter来说,功能更为强大,控件也更多,下面我简单介绍一下这个库的安装和使用:
1.首先,安装wxpython,这个也直接在cmd窗口输入命令“pip install wxpython”就行,如下:
2.安装完成后,我们就可以直接编写相关代码进行测试了,主要代码如下,非常简单,一个简单的文本编辑器:
点击运行这个程序,效果如下:
pyqt
这个Qt的一个Python接口库,借助于Qt强大的用户界面,Python也可以快速开发出GUI程序,组件更多,也更方便,只要你有一定的Qt基础,很快就能掌握这个库的使用,下面我简单介绍一下这个库的安装和使用:
1.首先,安装pyqt,这个直接在cmd窗口输入安装命令“pip install pyqt5”就行,如下,安装需要稍微等待一会儿:
2.安装完成后,我们就可以直接编写代码进行测试了,如下,一个简单的计算器:
点击运行这个程序,效果如下:
至此,我们就介绍完了这5个Python GUI库。总的来说,这5个库使用起来都非常不错,如果你的应用界面比较简单,功能要求不高,可以选择tkinter和easygui,如果界面比较复杂,功能要求比较复杂,可以考虑使用wxpython或pyqt,当然,你也可以使用其他GUI库,像pygame等,根据实际项目需求而定,网上也有相关资料和教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
▍Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
首先,python的桌面开发GUI有很多,掌握一种就可以进行桌面开发。
其次,你的问题有2个,我这里只能回答第2个问题,第1个问题需要认真学习自己喜欢的一种相关教程,篇幅较长,暂时不介绍了。
python的桌面GUI有:
第1个:tkinter库:
=============
推荐级别:★★★☆☆
python3的内置GUI库,注意tkinter的版本关系,功能强大。适合中等程序。
第2个:pyqt和PySide2:
==================
推荐级别:★★★☆☆
功能强大,但学起来很繁琐,可以看看我的这篇文章。适合大型程序。
链接:《PySide2:一个基于强大Qt(ta的亲儿子) 的Python的GUI库初识》
第3个:appJar库:
==============
推荐级别:★★★★☆
链接:《自称是Python中GUI的终极工具:appJar》,适合小程序。
第4个:PySimpleGUI库:推荐库
===================
推荐级别:★★★★★
链接:《python3的PySimpleGUI库的介绍、安装、学习》
第5个:EasyGUI库:
===============
推荐级别:★★★★☆
链接:《EasyGUI是python的一个超级简单的GUI工具介绍(一)》
第6个:Toga库:
============
推荐级别:★★☆☆☆
链接:《华为笔记本+深度操作系统:Toga安装(Python 原生GUI 工具包)》
据说强大,用的人不多。
第7个:Eel库:
===========
推荐级别:★★★★★
链接:《Python的一个轻量级桌面GUI开发第三方库:Eel》
强大且推荐。
第8个:Guizero库:
==============
推荐级别:★★★★☆
链接:《Python的GUI的guizero库(基于tkinter)介绍(一)》
第9个:Flexx库:
=============
推荐级别:★★★☆☆
链接:《Flexx:一个强大的、跨平台的、纯Python开发的Web的GUI》
第10个:TraitsUI库:
===============
推荐级别:★★☆☆☆
链接:《TraitsUI:一款python的轻松制作用户界面GUI》
第11个:Pyface库:
===============
推荐级别:★★★★☆
链接:《Pyface库:一个基于pyqt、pyside、wx且简化的python的GUI》
以上都是我今日头条的文章介绍过的,一秒入门。
当然还有据说很强大,我觉得不好的GUI库:
WxPython库
Kivy库
Dabo库
原因:竟然不支持python3.8,所以我没试过,当然觉得不好,更新也不及时,差评!哈哈哈。
▍Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
推荐使用pyecharts,pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 pyecharts 生成的图可视化效果非常棒。可以生成饼图、柱状图、热力图、极坐标图、雷达图、仪表盘、散点图、地理坐标系、地图…,我研究过一段时间,适用于数据可视化,特别是制作可视化大屏。
▍Python如何进行GUI桌面开发?有哪些不错的库可以推荐?
tkinter,gtk+,kivy,pyqt,wxpython,ironpython等;
我比较推荐pyQt4,学习资源丰富,对高分屏支持好一些,打包体积也比较小;
------------------
推荐阅读:
上一篇:一建退休后就不能用了吗?
下一篇: 练毛笔字的时候竖笔总是写不直,怎么提高?