<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Pyqt5安裝並設定到pycharm方法:教你如何用pycharm安裝pyqt5及其相關設定
QLabel是介面中的標籤類,繼承自QFrame類,提供文字和影象的顯示,是一種展示控制元件。
QLabel物件可以顯示不可編輯的文字或圖片,可以放置一個GIF動畫,還可以被用作提示標記為其他控制元件。
純文字、連結或富文字也可以顯示在標籤上。
setAlignment()
:按固定值方式對齊文字,有以下對齊方式:
Qt.AlignLeft(水平方向靠左對齊) 、Qt.AlignRight(水平方向靠右對齊)、Qt.AlignCenter(水平方向居中對齊)、Qt.AlignJustify(水平方向調整間距兩端對齊)、Qt.AlignTop(垂直方向靠上對齊)、Qt.AlignBottom(垂直方向靠下對齊)、Qt.AlignVCenter(垂直方向居中對齊)
1.linkHovered:當滑鼠指標滑過標籤中嵌入的超連結時,需要用槽函數與這個訊號進行繫結
2.linkActivated:當單擊標籤中嵌入的超連結,希望在新視窗中開啟這個超連結時,setOpenExternalLinks特性必須設定為true
使用QLabel播放視訊檔的重點就在****定時器QTimer
當程式中需要顯示時間時或者需要在程式中週期性地進行某項操作,就會用到定時器
匯入QTimer模組:
from PyQt5.QtCore import QTimer
初始化:
self.timer_camera = QTimer()
計時並啟動:
self.timer_camera.start(1000) # 1000ms == 1s self.timer_camera.timeout.connect(self.openFrame) # 連線槽函數openFrame
注意:當QTimer的父物件被銷燬時,它也會被自動銷燬。
UI介面:
python程式:
from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.uic import loadUiType import cv2 import sys vedio_ui, _ = loadUiType('./UI/vedio.ui') class VedioGui(QMainWindow, vedio_ui): # 定義構造方法 def __init__(self): QMainWindow.__init__(self) self.setupUi(self) self.timer_camera = QTimer() self.handle_buttons() self.open_vedio() # 所有Button的訊息與槽的通訊 def handle_buttons(self): self.btn_Start.clicked.connect(self.Btn_Start) self.btn_Stop.clicked.connect(self.Btn_Stop) def Btn_Start(self): # 定時器開啟,每隔一段時間,讀取一幀 self.timer_camera.start(100) self.timer_camera.timeout.connect(self.OpenFrame) def Btn_Stop(self): # self.cap.release() self.timer_camera.stop() def open_vedio(self): """選取視訊檔""" # 這裡以mp4和avi視訊播放為例 openfile_name = QFileDialog.getOpenFileName(self, 'chose files', '', 'Image files(*.mp4 *.avi)') # 開啟檔案選擇框選擇檔案 self.file_name = openfile_name[0] # 獲取圖片名稱 # 得到檔案字尾名 需要根據情況進行修改 suffix = self.file_name.split("/")[-1][self.file_name.split("/")[-1].index(".") + 1:] # print(self.file_name, suffix) if self.file_name == '': pass elif suffix == "mp4" or suffix == "avi": self.cap = cv2.VideoCapture(self.file_name) def OpenFrame(self): ret, image = self.cap.read() if ret: if len(image.shape) == 3: image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) vedio_img = QImage(image.data, image.shape[1], image.shape[0], QImage.Format_RGB888) elif len(image.shape) == 1: vedio_img = QImage(image.data, image.shape[1], image.shape[0], QImage.Format_Indexed8) else: vedio_img = QImage(image.data, image.shape[1], image.shape[0], QImage.Format_RGB888) self.vedio_label.setPixmap(QPixmap(vedio_img)) self.vedio_label.setScaledContents(True) # 自適應視窗 else: self.cap.release() self.timer_camera.stop() # 介面關閉事件,詢問使用者是否關閉 def closeEvent(self, event): reply = QMessageBox.question(self, '退出', "是否要退出該介面?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: self.close() event.accept() else: event.ignore() if __name__ == "__main__": app = QApplication(sys.argv) window = VedioGui() window.show() sys.exit(app.exec_())
視訊播放成功顯示:
注:視訊播放沒有聲音
到此這篇關於python中Pyqt5使用Qlabel實現標籤進行視訊播放的文章就介紹到這了,更多相關Qlabel實現視訊播放內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45