---作者疆,未經允許,嚴禁轉載,違權必究---
---歡迎指正,需要源碼和文件可站內私信聯系---
-----------點擊此處鏈接至博客園原文-----------
功能說明: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環境不同導致的,具體可百度解決。