---作者疆,未經允許,嚴禁轉載,違權必究---
---歡迎指正,需要源碼和檔案可站内私信聯系---
-----------點選此處連結至部落格園原文-----------
功能說明:PyQt界面程式,觸發播放按鈕實作顯示圖檔、一窗體一屏一放視訊、一窗體多屏多放視訊功能
運作環境:Windows7、Python3、PyQt5、Pycharm5.0
一、環境搭建
參考連結:PyQt5環境搭建、PyQt工具欄菜單漢化
1.PyQt5和PyQt5-tools安裝(注:PyQt5與PyQt4存在一定差別)
pip安裝指令為 pip install PyQt5和pip install PyQt5-tools
2.Pycharm中Qt Designer(用于繪畫界面)和PyUIC(将界面ui檔案轉化為py檔案供繼承)配置
Pycharm中菜單欄依此點選File----Settings----Tools----External Tools-----點選“+”号,按下圖分别添加Qt Designer、PyUIC
Program參數為“designer.exe”的全路徑,Working directory:$ProjectFileDir$

Program參數為“python.exe”的全路徑,Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
3.Qt Designer工具欄菜單漢化(英語大神可跳過此步)
下載下傳designer_zh_CN.qm将它放在你的...\Lib\site-packages\pyqt5-tools\translations檔案夾中,重新打開QT就漢化成功了
designer_zh_CN.qm的下載下傳位址為:https://pan.baidu.com/s/1jzkumqjw-3VQiJxvo4V6Xw
二、執行個體上手----實作顯示圖檔
參考連結:計算售價界面程式(隻學習其中如何繪制ui界面)、PyQt 用label控件顯示圖檔、基于Qt Designer和PyUIC開發PyQt程式的步驟
----------------上述3個部落格建議看下,可以有個初步了解,也可跳過----------------------
1.使用Qt Designer設計界面
Pycharm中頂部菜單欄依此點選Tools ----External Tools----Qt Designer,如下圖所示,選擇建立Main Window(主窗體),可在“螢幕大小”選項選擇适當大小,此時若不選擇可以後續再更改相關屬性
注:作為我們初學者,先别管main windows、Widget、Dialog的差別(之間存在繼承關系、功能略有差異)
就像做ppt一樣開始繪制界面ui,左側為控件箱,中間為繪制視窗面闆,右側可更改視窗、控件相關屬性
本節涉及的控件主要包括label、Push Button等,隻需在控件箱将相應控件拖入面闆
以label控件為例,拖入面闆,點選label控件,在右側一列屬性欄内編輯其屬性,一般需要改objectName(通過pythpn代碼調用這個控件的變量名,盡量取有意義的名字)、text(顯示文字)、寬度、高度等屬性
pushbotton控件同樣照此操作,得到的簡易界面如下圖所示
儲存目前窗體(如:起名為test.ui),将自動生成xx.ui檔案(實際上是一個xml檔案,可用任何文本編輯器打開),此時,對該檔案右鍵 External Tools ----PyUIC ,“xx.ui”檔案在同目錄下被轉為“xx.py”檔案以便繼承,轉換為“xx.py”的原因是IDE能自動識别對象和函數。然後在目前目錄下建立一個.py檔案(如下圖中show_single_channel.py)。
在該py檔案中添加如下頭檔案
建立一個類MyApp,繼承Ui_MainWindow類,類内添加初始化方法
類内添加槽函數及槽函數需調用的函數等,當點選pushButton将觸發槽函數相應事件
添加主函數
實作效果:點選播放按鈕,螢幕顯示該圖檔
三、執行個體上手----實作一窗體一屏一放
參考連結:BGR圖像轉換為QImage對象、QPixmap詳解 (以上部落格建議閱讀)
項目名:qt_show_single(百度雲盤備份不對外提供)
實作效果:點選播放按鈕,螢幕實時播放視訊
與執行個體二代碼邏輯上無本質上差別,主要修改槽函數即可,修改說明可見如下截圖注釋
僅提供代碼截圖(show_single_channel.py):
四、執行個體上手----實作一窗體多屏多放
項目名:qt_show_double(百度雲盤備份不對外提供)
實作效果:分别點選播放1、播放2,螢幕實時播放對應視訊。
代碼說明:按上述操作單屏能實作的話,多屏是一樣的道理,主要問題在于代碼如何寫的更精簡,由于項目要求,在此不提供參考代碼。
五、常見報錯
1.native Qt signal is not callable
将信号與槽函數未關聯,此處若缺少connect會導緻該錯誤發生。
2.環境的錯誤:如PyQt4與PyQt5環境不同導緻的,具體可百度解決。