參加比賽或者活動,再目標檢測或分類任務中,時常需要快速開發一個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
安裝QtDesigne教程
配置完成後如下圖,即可訪問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可執行程序,點擊即可運行,那麼請使用封包工具
Enigma Virtual Box封包工具介紹
程序就長這個樣子:
我的程序大概4個G,不建議封包,特別慢;輕量化的小程序可以封裝,感覺很便捷,如果程序過大不建議使用。
整個學習過程中,博客參考如下:
2022年6月29日01:12:56,到今天學習GUI就告一段落啦;研究生開題、兆易杯比賽夠忙活了,加油吧!
凌晨1點,頂不住了。睡覺去,晚安!
算了,還是整體格式修改一下,哈哈哈。
code{font-size:12px;padding:15
Python List in the standard li