Python PyQt5 QMediaPlayer Video播放器
前言:
写个Python GUI介面总是让人抓狂,Debug不易,还要在脑袋内想像Window画面,哪个元件连到哪个function、该做什麽、放在那一段…琐琐碎碎的,要改一小段就要从头翻到尾….真让人怀念IDE的方便年代。
前阵子从网路上找到的Source Code,拼凑成一个VideoPlayer,改完了,程序码还是迷迷糊糊的。最近,使用Qt Designer重做一个,就当是GUI的习作吧。
Source Code 在此:
[ ufrmVideo.ui]
[ ufrmVideo.py]
[VideoPlayer202108.py]
打包执行档(Win 64x) VideoPlayer202108.exe ( 还需要另外安装 K-Lite 或 ffmpeg 才能顺利播放,请自行搜寻下载。)
Step 1、 Qt Designer 建构画面
Qt Designer 建好的档 ufrmVideo.ui 转成 ufrmVideo.py
请执行 Pyuic5 ufrmVideo.ui -o ufrmVideo.py
这个档的内容就不要修改了,因为即使改了,下次再进入 Qt Designer编辑,就都不见了。
画面布置:一个Menubar 选档案、一个ListView 显示档案、一排PushButton、两个 Slider(控制音量、显示进度)、两个Label(显示播放时间、影片全长)
注:ViewButton 、PauseButton 的checkable请勾选
Step 2 、主程序
三个Class ViewerWindow 影片播放窗、MainWindow控制窗、PlaylistModel播放清单
影片播放窗
class ViewerWindow(QMainWindow):
# state for view
state = pyqtSignal(bool)
# sign for pause
sign = pyqtSignal(bool)
def closeEvent(self, e):
# emit to update the viewer button
self.state.emit()
def mousePressEvent(self, e):
if e.button() == Qt.RightButton:
print('Rt click pause')
self.sign.emit(True)
def keyPressEvent(self,e ):
if e.key() == Qt.Key_Escape:
print('Esc pressed')
self.state.emit()
ps. 以pyqtSignal 激发ui Button,再切换自己的显示、隐藏,控制player暂停、播放…。
这种绕迷宫的方式,我已经卡卡…Sorry,有兴趣的自己研究吧。
其余代码请下载 VideoPlayer202108.py
本程序只选取主要相关事件,非完整播放程序,其它功能请自行开发。
程序执行步骤:
Menu : File --> Open
listView -->选video
Play --> View (显示影片)
结论心得:
<<: Day38 参加职训(机器学习与资料分析工程师培训班),RNN
前言 oh!终於要开始学习写 Python 了呢!(被揍),都混了三天,我如果再不开始写 Pytho...
今天我们来看看 while 回圈吧~ while 回圈的基本语法: while(test_Expre...
特殊的数字 Infinity 系列: Infinity + Infinity // Infinity...
Day12 - Kotlin的集合 我今天要讲的是Kotlin的集合,今天就稍微讲一下集合List,...
注:本文同步刊载在Medium,若习惯Medium的话亦可去那边看呦! 接下来让我们来聊聊Pytho...