多路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的索引

相关推荐
Macdo_cn3 小时前
Screen Wonders for Mac v3.3.1 3D屏保应用 支持M、Intel芯片
macos·音视频
终极定律4 小时前
qt:输入控件操作
开发语言·qt
苏三福7 小时前
rk3588/3576板端编译程序无法运行视频推理
arm开发·音视频
江同学_7 小时前
RTSP场景下RTP协议详解及音视频打包全流程
音视频
道剑剑非道8 小时前
QT开发技术 【opencv图片裁剪,平均哈希相似度判断,以及获取游戏窗口图片】
qt·opencv·哈希算法
年轮不改8 小时前
ARM Linux平台下 OpenCV Camera 实验
linux·arm开发·qt
Pan_peter8 小时前
零基础学QT、C++(五)QT编译、导入OpenCV
开发语言·c++·qt
道剑剑非道8 小时前
QT开发技术 [opencv加载onnx模型,dnn推理]
qt·opencv·dnn
软件开发技术局15 小时前
撕碎QT面具(8):对控件采用自动增加函数(转到槽)的方式,发现函数不能被调用的解决方案
开发语言·qt
OopspoO16 小时前
QT事件循环
qt·事件循环