91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中Pyqt5怎么使用Qlabel標簽進行視頻播放

發布時間:2022-04-22 10:03:13 來源:億速云 閱讀:885 作者:zzz 欄目:開發技術

本文小編為大家詳細介紹“python中Pyqt5怎么使用Qlabel標簽進行視頻播放”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python中Pyqt5怎么使用Qlabel標簽進行視頻播放”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、簡介

QLabel是界面中的標簽類,繼承自QFrame類,提供文本和圖像的顯示,是一種展示控件。

QLabel對象可以顯示不可編輯的文本或圖片,可以放置一個GIF動畫,還可以被用作提示標記為其他控件。

純文本、鏈接或富文本也可以顯示在標簽上。

二、基本用法

2.1 QLabel控件   

setAlignment():按固定值方式對齊文本,有以下對齊方式:

Qt.AlignLeft(水平方向靠左對齊) 、Qt.AlignRight(水平方向靠右對齊)、Qt.AlignCenter(水平方向居中對齊)、Qt.AlignJustify(水平方向調整間距兩端對齊)、Qt.AlignTop(垂直方向靠上對齊)、Qt.AlignBottom(垂直方向靠下對齊)、Qt.AlignVCenter(垂直方向居中對齊)

  • setIndent():設置文本縮進

  • setPixmap():設置QLabel為一個Pixmap圖片

  • text():獲得QLabel的文本內容

  • setText():設置QLabel的文本內容   

  • selectedText():返回所選擇的字符

  • setBuddy():設置伙伴關系

  • setWordWrap():設置是否允許換行

2.2 QLabel常用的信號(事件)

1.linkHovered:當鼠標指針滑過標簽中嵌入的超鏈接時,需要用槽函數與這個信號進行綁定

2.linkActivated:當單擊標簽中嵌入的超鏈接,希望在新窗口中打開這個超鏈接時,setOpenExternalLinks特性必須設置為true

三、QLabel播放視頻

使用QLabel播放視頻文件的重點就在****定時器QTimer

當程序中需要顯示時間時或者需要在程序中周期性地進行某項操作,就會用到定時器

 3.1 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的父對象被銷毀時,它也會被自動銷毀。

3.2 代碼 

UI界面:

python中Pyqt5怎么使用Qlabel標簽進行視頻播放

 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標簽進行視頻播放

注:視頻播放沒有聲音

讀到這里,這篇“python中Pyqt5怎么使用Qlabel標簽進行視頻播放”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华阴市| 苍山县| 鲜城| 肥西县| 汾阳市| 三河市| 石棉县| 武邑县| 宁陵县| 崇文区| 九江市| 阿克| 夏邑县| 宝鸡市| 兴化市| 南充市| 和静县| 卓尼县| 呼伦贝尔市| 成安县| 化德县| 凌海市| 桦甸市| 合水县| 耿马| 姚安县| 汶川县| 德州市| 宜春市| 定兴县| 永福县| 济宁市| 夏邑县| 海淀区| 禹城市| 北京市| 株洲市| 礼泉县| 五莲县| 射洪县| 隆德县|