【三十七】【QT开发应用】使用QVideoWidget播放视频,QT模块缺失时更新安装模块步骤(利用虚拟网址打开应用加速)

效果展示



  • 下面有一个按钮打开视频,点击按钮之后会出现一个弹窗选择文件,默认打开的是D盘,并且选择的文件的类型有.mp4 .flv或者所有文件。
  • 选择正确的视频文件之后可以正常播放视频。

widget.h 主窗口头文件

cpp 复制代码
#pragma once

#include <QtWidgets/QWidget>
#include <QtMultimediaWidgets>
#include "ui_widget.h"


class widget : public QWidget
{
    Q_OBJECT

public:
    widget(QWidget *parent = nullptr);
    ~widget();

private slots:
    void on_btnOpen();

private:
    Ui::widgetClass ui;

    QVideoWidget* m_output = nullptr;
};
  • 头文件包含两个模块头文件,QtWidgetsQtMultimediaWidgets ,QtMultimediaWidgets 确实是一个独立的模块,它扩展了 QtMultimedia,提供了用于在Qt中显示视频的功能,如视频播放窗口等。
  • 槽函数on_btnOpen是连接按钮的槽函数.

widget.cpp 主窗口源文件

cpp 复制代码
#include "widget.h"
#include "QtWidgets"


widget::widget(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    QVBoxLayout* pVLayMain = new QVBoxLayout(this);
    QHBoxLayout* pHLay1 = new QHBoxLayout(this);

    m_output = new QVideoWidget(this);
    //用来播放视频的窗口
    QPushButton* pBtnOpen = new QPushButton(this);

    m_output->setMinimumSize(600, 400);

    pBtnOpen->setFixedSize(80, 40);
    pBtnOpen->setText("打开视频");

    pHLay1->addStretch();
    pHLay1->addWidget(pBtnOpen);
    pHLay1->addStretch();

    pVLayMain->addWidget(m_output);
    pVLayMain->addLayout(pHLay1);



    connect(pBtnOpen, &QPushButton::clicked, this, &widget::on_btnOpen);
}

widget::~widget()
{}

void widget::on_btnOpen() {
    QString filename = QFileDialog::getOpenFileName(this, "请选择视频文件", "D:/", "视频文件(*.mp4 *.flv);;所有文件(*.*);;");
    //this父窗口,对话框标题,默认打开目录,文件类型过滤器用;;分开
    if (filename.isEmpty())
        return;
	QAudioOutput* audioOutput = new QAudioOutput(this);
	//音频
	
    QMediaPlayer* pPlayer = new QMediaPlayer(this);
	//视频
	
    pPlayer->setAudioOutput(audioOutput);
    //设置音频
    pPlayer->setSource(QUrl::fromLocalFile(filename));
    //设置视频
    pPlayer->setVideoOutput(m_output);
    //设置视频播放对象
    pPlayer->play();
    //视频播放
}
  • QVideoWidget用来承载视频播放的窗口对象.
  • QFileDialog::getOpenFileName打开文件,返回值文件全局路径.
  • QAudioOutput表示音频的对象.
  • setAudioOutput设置音频.
  • setSource设置视频源路径,全局路径转化为QUrl格式,QUrl::fromLocalFile(filename).
  • setVideoOutput设置视频播放的窗口对象.
  • play视频开始播放.

更新QT模块步骤

首先找到这个文件夹,里面有MaintenanceTool.exe应用的QT文件夹.

然后在这个文件夹中打开cmd命令行.

命令行输入以下代码
MaintenanceTool.exe --mirror https://mirrors.ustc.edu.cn/qtproject

如果系统不让你添加组件,强制要求你更新组件的话,你更新完组件之后重新启动就可以添加组件了.

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。

同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。

谢谢您的支持,期待与您在下一篇文章中再次相遇!

相关推荐
摇滚侠2 小时前
macbook shell 客户端推荐 Electerm macbook 版本下载链接
java·开发语言
程序员布吉岛2 小时前
Java 后端定时任务怎么选:@Scheduled、Quartz 还是 XXL-Job?(对比 + 避坑 + 选型)
java·开发语言
C++ 老炮儿的技术栈2 小时前
Qt Creator中不写代如何设置 QLabel的颜色
c语言·开发语言·c++·qt·算法
知无不研2 小时前
lambda表达式的原理和由来
java·开发语言·c++·lambda表达式
lili-felicity2 小时前
CANN多模型并发部署与资源隔离
开发语言·人工智能
小龙报2 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
qq_532453532 小时前
使用 Three.js 构建沉浸式全景图AR
开发语言·javascript·ar
浅念-2 小时前
C语言——动态内存管理
c语言·开发语言·c++·笔记·学习
晚霞的不甘4 小时前
CANN 支持多模态大模型:Qwen-VL 与 LLaVA 的端侧部署实战
人工智能·神经网络·架构·开源·音视频
草履虫建模8 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础