多路h265监控录放开发-(8)通过XCameraWIget类拖拽实现指定播放rtsp和窗口

首先修改xviewer的构造函数,把创建QWiget对象改为XCameraWiget对象,执行XCameraWiget类的构造函数

xcamera_widget.h

cpp 复制代码
#pragma once
#include <QWidget>
class XCameraWidget :public QWidget
{
    Q_OBJECT

public:
    XCameraWidget(QWidget* p = nullptr);

    //拖拽进入
    void dragEnterEvent(QDragEnterEvent* e) override;

    //拖拽松开
    void dropEvent(QDropEvent* e) override;

    //渲染
    void paintEvent(QPaintEvent* p);

};

xcamera_widget.cpp

cpp 复制代码
#include "xcamera_widget.h"
#include <QStyleOption>
#include <QPainter>
#include <QDragEnterEvent>
#include <QDropEvent>
#include <QDebug>
#include <QListWidget>
//渲染
void XCameraWidget::paintEvent(QPaintEvent* p)
{
    //渲染样式表
    QStyleOption opt;
    opt.init(this);
    QPainter painter(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
}
XCameraWidget::XCameraWidget(QWidget* p) :QWidget(p)
{
    //接收拖拽
    this->setAcceptDrops(true);
}

//拖拽进入
void XCameraWidget::dragEnterEvent(QDragEnterEvent* e)
{
    //接收拖拽进入
    e->acceptProposedAction();
}

//拖拽松开
void XCameraWidget::dropEvent(QDropEvent* e)
{
    //拿到url
    qDebug() << e->source()->objectName();
    auto wid = (QListWidget*)e->source();
    qDebug() << wid->currentRow();

}

主函数:

cpp 复制代码
#include "xviewer.h"
#include <QtWidgets/QApplication>
#include"xcamera_config.h"
#include<qdebug.h>

#define TEST_CAM_PATH "test.db"//118

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    XViewer w;
    w.show();
    
    return a.exec();
}

运行结果:

在我们把listwidget拖拽到XcameraWidget类上的时候,我们打印出了该listwidget的索引

相关推荐
cuijiecheng20181 小时前
音视频入门基础:FLV专题(13)——FFmpeg源码中,解析任意Type值的SCRIPTDATAVALUE类型的实现
ffmpeg·音视频
Envyᥫᩣ2 小时前
《ASP.NET Web Forms 实现视频点赞功能的完整示例》
前端·asp.net·音视频·视频点赞
一律清风7 小时前
QT-文件创建时间修改器
c++·qt
不知所云,7 小时前
qt cmake自定义资源目录,手动加载资源(图片, qss文件)
开发语言·qt
Death2008 小时前
Qt 6 相比 Qt 5 的主要提升与更新
开发语言·c++·qt·交互·数据可视化
机器视觉知识推荐、就业指导8 小时前
使用Qt实现实时数据动态绘制的折线图示例
开发语言·qt
HJ_SDK9 小时前
探索私有化聊天软件:即时通讯与音视频技术的结合
音视频
Geek之路11 小时前
QT系统学习篇(1)
开发语言·qt·学习
jndingxin19 小时前
OpenCV视频I/O(8)视频采集类VideoCapture之从视频源中读取一帧图像函数read()的使用
人工智能·opencv·音视频
Geek之路19 小时前
Qt系统学习篇(6)-QMainWindow
数据库·qt·学习