参加比赛或者活动,再目标检测或分类任务中,时常需要快速开发一个GUI可视化界面。今天我们学习的内容如下:
PySide2学习路线分享
基于Qt Desinger快速拖动一个界面
将自己Python代码的输入输出与界面联动并展示
可视化程序完成后,发布代码,打包成exe
Pyside2就是基于Python开发Qt可视化界面的库,Qt是基于C++实现的;想要在Python上使用,肯定需要一个接口,我们选择的是Pyside2。
PyQt5也是基于Python开发Qt的库,可以把它理解为不同人维护的库,相互之间有不少共同点,选择一个学习即可。
首先,肯定是先配置好环境。Anaconda使用不多说了哟:Anaconda命令行总结
安装Pyside2
pip install pyside2 -i https://pypi.douban.com/simple
Qt Designer是什么?是一个软件,称作它为Qt设计师,专门来设计ui;可以快速拉动控件,编辑控件属性,方便快捷!减少很多代码量,而
且支持随时预览。这样我们可以先确定好ui,然后实现功能的接口,前后端分离,可控性高。
在Pyside2中已经默认安装好Qt Designer,我们需要配置好它,然后能够快捷的在PyCharm中使用。
按照下述教程配置好Pycharm的Tools工具,方便快速访问Qt Designer
配置完成后如下图,即可访问Qt设计师

点击pyside2_designer能够快速启动qt
点击pyuic5能够将Qt设计师生成的.ui文件转换成python代码
打开Qt设计师,快速设计出,你所需要的界面。

这时你肯定很陌生,不知道如何使用;所以这时候我们需要一个教程来学习。
英文文档:Pyside2官方文档

中文文档:白月黑羽:Qt图形界面Gui

网站上有常用的组件、属性、以及例子;自学完全足够的。
视频教程1:Python Qt 图形界面编程 - PySide2 PyQt5 PyQt PySide
我自己是先学习白月黑羽的视频教程到P12

视频教程2:Python Qt 控件 - 持续更新中 - PySide2 PyQt5 PyQt PySide Pyside6

然后又学习了UP主,2021年最新的视频,我感觉这个视频更加有用一点,视频看完结合博主的网站就开始开发自己的程序了。
白月黑羽:www.python3.vip
边查询组件的使用,结合课上讲的内容就开始开发程序了。
我自己要做的东西,就是基于Mask R-CNN训练好了一个实例分割的模型,要做一个简单的GUI来展示成果。
所以我自己就大致进行了设计如下:
努力两天的简单成果如下:

实现起来很快,视频学习完,参考网站实例就能完成。我主要用的控件如下:
使用pyinstaller打包程序成可执行文件,命令如下,其中main.py为你的程序入口,在里面加载ui文件(最好设为同级目录,它只能帮你把相关环境依赖打包,加载的各种文件路径,还需要放在对应的文件路径)
pyinstaller main.py --noconsole --hidden-import PySide2.QtXml
发布程序教程:https://www.byhy.net/tut/py/gui/qt_04/
打包完成后就像下图所示,运行main.exe即可启动GUI。当然,在打包过程中你可能会遇见许多坑,一个一个问题解决就好。

当然,往往你还想再精简一下自己的程序;直接封装成一个exe可执行程序,点击即可运行,那么请使用封包工具
程序就长这个样子:

我的程序大概4个G,不建议封包,特别慢;轻量化的小程序可以封装,感觉很便捷,如果程序过大不建议使用。
整个学习过程中,博客参考如下:
2022年6月29日01:12:56,到今天学习GUI就告一段落啦;研究生开题、兆易杯比赛够忙活了,加油吧!
凌晨1点,顶不住了。睡觉去,晚安!
算了,还是整体格式修改一下,哈哈哈。