利用PyQt GUI顯示圖片、實時播放視頻


---作者疆,未經允許,嚴禁轉載,違權必究---

---歡迎指正,需要源碼和文件可站內私信聯系---

-----------點擊此處鏈接至博客園原文-----------

 

功能說明: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的下載地址為:

  

二、實例上手----實現顯示圖片

參考鏈接:計算售價界面程序(只學習其中如何繪制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環境不同導致的,具體可百度解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM