最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中Pyqt5使用Qlabel標(biāo)簽進行視頻播放

 更新時間:2022年04月22日 09:17:07   作者:??牧子川????  
這篇文章主要介紹了python中Pyqt5使用Qlabel實現(xiàn)標(biāo)簽進行視頻播放,QLabel是界面中的標(biāo)簽類,繼承自QFrame類,提供文本和圖像的顯示,是一種展示控件,下文相關(guān)內(nèi)容介紹需要的小伙伴可以參考一下

Pyqt5安裝并配置到pycharm方法:教你如何用pycharm安裝pyqt5及其相關(guān)配置

一、簡介

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

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

純文本、鏈接或富文本也可以顯示在標(biāo)簽上。

二、基本用法

2.1 QLabel控件   

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

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

  • setIndent():設(shè)置文本縮進
  • setPixmap():設(shè)置QLabel為一個Pixmap圖片
  • text():獲得QLabel的文本內(nèi)容
  • setText():設(shè)置QLabel的文本內(nèi)容   
  • selectedText():返回所選擇的字符
  • setBuddy():設(shè)置伙伴關(guān)系
  • setWordWrap():設(shè)置是否允許換行

2.2 QLabel常用的信號(事件)

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

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

三、QLabel播放視頻

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

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

 3.1 QTimer

導(dǎo)入QTimer模塊:

from PyQt5.QtCore import QTimer

初始化:

self.timer_camera = QTimer()

計時并啟動:

self.timer_camera.start(1000)   # 1000ms == 1s
self.timer_camera.timeout.connect(self.openFrame)  # 連接槽函數(shù)openFrame

注意:當(dāng)QTimer的父對象被銷毀時,它也會被自動銷毀。

3.2 代碼 

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):
    # 定義構(gòu)造方法
    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]  # 獲取圖片名稱

        # 得到文件后綴名  需要根據(jù)情況進行修改
        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)  # 自適應(yīng)窗口
        else:
            self.cap.release()
            self.timer_camera.stop()

    # 界面關(guān)閉事件,詢問用戶是否關(guān)閉
    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_())

視頻播放成功顯示: 

?

注:視頻播放沒有聲音

到此這篇關(guān)于python中Pyqt5使用Qlabel實現(xiàn)標(biāo)簽進行視頻播放的文章就介紹到這了,更多相關(guān)Qlabel實現(xiàn)視頻播放內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python2及Python3如何實現(xiàn)兼容切換

    Python2及Python3如何實現(xiàn)兼容切換

    這篇文章主要介紹了Python2及Python3如何實現(xiàn)兼容切換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 基于Python實現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn)

    基于Python實現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn)

    這篇文章主要介紹了基于Python實現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn),mui最接近原生APP體驗的高性能前端框架,MUI側(cè)滑常見的場景有下拉刷新,側(cè)滑抽屜,側(cè)滑刪除,側(cè)滑返回以及側(cè)滑菜單等等,下面來看看文章內(nèi)容詳細的介紹,需要的朋友可以參考一下
    2021-11-11
  • python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)

    python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)

    在python中能夠進行html和xhtml的庫有很多,如HTMLParser、sgmllib、htmllib、BeautifulSoup、mxTidy、uTidylib等,這里介紹一下HTMLParser、BeautifulSoup等模塊
    2014-06-06
  • python中如何提高圖像質(zhì)量

    python中如何提高圖像質(zhì)量

    這篇文章主要介紹了python中如何提高圖像質(zhì)量問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 如何利用python制作時間戳轉(zhuǎn)換工具詳解

    如何利用python制作時間戳轉(zhuǎn)換工具詳解

    這篇文章主要給大家介紹了關(guān)于如何利用python制作時間戳轉(zhuǎn)換工具的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • python實現(xiàn)自動化上線腳本的示例

    python實現(xiàn)自動化上線腳本的示例

    今天小編就為大家分享一篇python實現(xiàn)自動化上線腳本的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • django 多數(shù)據(jù)庫配置教程

    django 多數(shù)據(jù)庫配置教程

    今天小編就為大家分享一篇django 多數(shù)據(jù)庫配置教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中break、continue與else語句詳解

    Python中break、continue與else語句詳解

    文章介紹了Python中循環(huán)break、continue和else,詳細解釋了它們的執(zhí)行邏輯、應(yīng)用場景以及一些常見的誤解和避坑指南,通過真實案例展示了這些語句如何簡化代碼,從而寫出更清晰、更少嵌套的控制流,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 解決Python?OverflowError:Math?Range?Error問題及分析

    解決Python?OverflowError:Math?Range?Error問題及分析

    OverflowError:MathRangeError?是一個常見的編程錯誤,發(fā)生在數(shù)值超出數(shù)據(jù)類型范圍時,文章詳解了這個錯誤的原因,并提供了多種解決方案,如使用更大的數(shù)據(jù)類型、優(yōu)化算法、使用數(shù)學(xué)庫、錯誤處理等,還探討了常見場景和高級技巧
    2025-10-10
  • Python實現(xiàn)FTP文件定時自動下載的步驟

    Python實現(xiàn)FTP文件定時自動下載的步驟

    這篇文章主要介紹了Python實現(xiàn)FTP文件定時自動下載的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12

最新評論

右玉县| 辉县市| 白朗县| 青阳县| 康定县| 旺苍县| 凌云县| 万源市| 神木县| 哈巴河县| 丹巴县| 吉首市| 松溪县| 南川市| 贡嘎县| 庆云县| 大田县| 安康市| 许昌市| 榆中县| 竹北市| 商水县| 安吉县| 本溪| 新营市| 黔江区| 大悟县| 灵武市| 三都| 喀喇| 孟州市| 大厂| 古交市| 神农架林区| 报价| 上蔡县| 望城县| 湘潭县| 巫山县| 蕉岭县| 新郑市|