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

---做者吳疆,未經容許,嚴禁轉載,違權必究---html

---歡迎指正,須要源碼和文件可站內私信聯繫---python

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

 

功能說明:PyQt界面程序,觸發播放按鈕實現顯示圖片、一窗體一屏一放視頻、一窗體多屏多放視頻功能編輯器

運行環境:Windows七、Python三、PyQt五、Pycharm5.0函數

 

1、環境搭建工具

參考連接:PyQt5環境搭建PyQt工具欄菜單漢化學習

1.PyQt5和PyQt5-tools安裝(注:PyQt5與PyQt4存在必定區別)ui

pip安裝命令爲 pip install PyQt5和pip install PyQt5-toolsspa

2.Pycharm中Qt Designer(用於繪畫界面)和PyUIC(將界面ui文件轉化爲py文件供繼承)配置.net

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的下載地址爲:

  

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

參考連接:計算售價界面程序(只學習其中如何繪製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將觸發槽函數相應事件

添加主函數

實現效果:點擊播放按鈕,屏幕顯示該圖片

3、實例上手----實現一窗體一屏一放

參考連接:BGR圖像轉換爲QImage對象QPixmap詳解    (以上博客建議閱讀)

項目名:qt_show_single(百度雲盤備份不對外提供)

實現效果:點擊播放按鈕,屏幕實時播放視頻

與實例二代碼邏輯上無本質上區別,主要修改槽函數便可,修改說明可見以下截圖註釋

僅提供代碼截圖(show_single_channel.py):

4、實例上手----實現一窗體多屏多放

項目名:qt_show_double(百度雲盤備份不對外提供)

實現效果:分別點擊播放一、播放2,屏幕實時播放對應視頻。

代碼說明:按上述操做單屏能實現的話,多屏是同樣的道理,主要問題在於代碼如何寫的更精簡,因爲項目要求,在此不提供參考代碼。

5、常見報錯

1.native Qt signal is not callable

將信號與槽函數未關聯,此處若缺乏connect會致使該錯誤發生。

2.環境的錯誤:如PyQt4與PyQt5環境不一樣致使的,具體可百度解決。

相關文章
相關標籤/搜索