当前位置: 首页 > news >正文

视频监控相关笔记

一、QT 之 QTreeWidget 树形控件

Qt编程指南,Qt新手教程,Qt Programming Guide

一个树形结构的节点中的图表文本 、附带数据的添加:

QTreeWidgetItem* TourTreeWnd::InsertNode(NetNodeInfo node, QTreeWidgetItem* parent_item)  
{  // 创建一个QVariant对象,用于存储NetNodeInfo类型的node  QVariant var;  var.setValue(node);  // 初始化一个指向QTreeWidgetItem的指针,用于存储新创建的节点  QTreeWidgetItem* Item = NULL;  // 检查parent_item是否为NULL,如果是,则表示要插入的节点是顶级节点  if (parent_item == NULL) {  // 为顶级节点创建一个新的QTreeWidgetItem对象  Item = new QTreeWidgetItem(m_tree.get());  // 设置新节点的第一个列的文本为node的Name属性  Item->setText(0, (QString)node.Name);  // 设置新节点的第一个列的工具提示与文本相同  Item->setToolTip(0, Item->text(0));  // 将新节点作为顶级节点添加到树形控件中  m_tree->addTopLevelItem(Item);  // 根据node的类型设置图标  // 如果节点类型是NodeType_TOURTASK,则使用特定类型的图标  if (node.Type == NodeType::NodeType_TOURTASK) {  Item->setIcon(0, QIcon(GetIconByNodetype(node.Type)));  }  // 注意:这里没有处理非NodeType_TOURTASK类型顶级节点的图标设置,可能是个遗漏  // 将QVariant对象var作为用户自定义数据存储在节点的第一个列上  Item->setData(0, Qt::UserRole, var);  // 设置节点第一个列的大小提示为30x30  Item->setSizeHint(0, QSize(30, 30));  }  // 如果parent_item不为NULL,则表示要插入的节点是子节点  else {  // 为子节点创建一个新的QTreeWidgetItem对象,并指定parent_item为其父节点  Item = new QTreeWidgetItem(parent_item);  // 设置子节点的大小提示为30x30  Item->setSizeHint(0, QSize(30, 30));  // 设置子节点的第一个列的文本为node的Name属性  Item->setText(0, (QString)node.Name);  // 设置子节点的第一个列的工具提示与文本相同  Item->setToolTip(0, Item->text(0));  // 根据node的类型或设备状态设置图标  // 如果节点类型是NodeType_DEVICE,则根据设备主类型、子类型和状态获取图标  if (node.Type == NodeType::NodeType_DEVICE) {  Item->setIcon(0, QIcon(GetIconByDevStatus(node.DevMainType, node.DevSubType, node.Status)));  }  // 如果不是NodeType_DEVICE类型,则根据节点类型获取图标  else {  Item->setIcon(0, QIcon(GetIconByNodetype(node.Type)));  }  // 将QVariant对象var作为用户自定义数据存储在节点的第一个列上  Item->setData(0, Qt::UserRole, var);  }  // 显示树形控件(通常不是必需的,因为可能在其他地方已经设置为可见)  m_tree->show();  // 展开树形控件中的所有节点,以便新插入的节点可见  m_tree->expandAll();  // 返回新创建的节点指针,以便调用者可以使用它  return Item;  
}

其中注意以下几点:

 

 

二、视频播放

1. 主辅码流区别

2.  RTSP

3.  SDK的调用案例:

#pragma once#include <memory>
#ifdef _WINDOWS
#include <Windows.h>
#ifdef  LIBRTSPCLINET_SDK_EXPORTS
#define LIBRTSPCLINET_API __declspec(dllexport)
#else
#define LIBRTSPCLINET_API __declspec(dllimport)
#endif
#else  
#define LIBRTSPCLINET_API
#endif#include "Common.h"using namespace std;class LIBRTSPCLINET_API LibRtspClientManager
{
public:static LibRtspClientManager& getInstance() {static LibRtspClientManager instance;return instance;}/* @ 初始化SDK:@ 参数:onLibRtspClientDateCB 数据回调函数地址onLibRtspClientMsgCB  消息回调函数地址@ 返回: bool*/bool Init();/* @ 反初始化SDK:@ 参数:@ 返回: void*/void UnInit();/* @ 创建RTSP Client:@ 参数:std::string url : rtsp urlTransProtocol trans_protocol : 0-udp, 1-tcpint timeout : 超时时间,单位秒@ 返回: int32_t rtsp session id*/uint32_t CreateRtspClient(std::string url,std::string username, std::string password,TransProtocol trans_protocol, RtspCallBack* callback, int timeout);bool ReleaseRtspClient(uint32_t session_id);/* @ 连接服务器* @ 异步通知,rtsp连接情况在onLibRtspClientMsgCB反馈*/bool Connect(uint32_t session_id);bool Play(uint32_t session_id, std::string params_json);bool Control(uint32_t session_id, std::string params_json);bool Pause(uint32_t session_id);// 恢复播放bool Resume(uint32_t session_id);// 从指定位置恢复播放bool Resume(uint32_t session_id, float npt);bool Stop(uint32_t session_id);void WaitForStop(uint32_t session_id);
private:LibRtspClientManager();virtual ~LibRtspClientManager();class LibRtspClientPriv;std::shared_ptr<LibRtspClientPriv> m_priv;
};

4. 

相关文章:

视频监控相关笔记

一、QT 之 QTreeWidget 树形控件 Qt编程指南&#xff0c;Qt新手教程&#xff0c;Qt Programming Guide 一个树形结构的节点中的图表文本 、附带数据的添加&#xff1a; QTreeWidgetItem* TourTreeWnd::InsertNode(NetNodeInfo node, QTreeWidgetItem* parent_item) { // …...

React 中,构建组件的方式

1. 函数组件&#xff08;Function Components&#xff09; 函数组件是最简单的组件形式&#xff0c;通常用于展示性的组件&#xff0c;不涉及复杂的生命周期方法。 import React from react;function Welcome(props) {return <h1>Hello, {props.name}</h1>; }exp…...

Android开发高频面试题之——Android篇

Android开发高频面试题之——Android篇 Android开发高频面试题之——Java基础篇 Android开发高频面试题之——Kotlin基础篇 Android开发高频面试题之——Android基础篇 1. Activity启动模式 standard 标准模式,每次都是新建Activity实例。singleTop 栈顶复用。如果要启动的A…...

禁用拷贝构造函数和赋值构造函数

在C中&#xff0c;禁用拷贝构造函数和拷贝赋值操作符的方式通常是为了防止类的对象被意外复制&#xff0c;这对于那些管理独占资源或不应被复制的对象尤为重要。 class LatActiveControlState : public LatState { public:LatActiveControlState() : LatState(LatS_ActiveCont…...

OneDrive for Business with Office Online 部署方案

目录 前言 部署准备 需求分析 用户需求 技术需求 环境准备 硬件要求 软件要求 许可计划 OneDrive for Business 部署 前期准备 域名配置 Azure AD 配置 安装与配置 安装 OneDrive 同步客户端 配置 OneDrive 组策略 数据迁移 Office Online 部署 前期准备 安…...

win10 win11 设置文件权限以解决Onedrive不能同步问题

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

Unity DOTS系列之IJobChunk来迭代处理数据

最近DOTS发布了正式的版本, 我们来分享一下System中如何在System中使用IJobChunk来迭代处理World中的数据&#xff0c;方便大家上手学习掌握Unity DOTS开发。 再回顾一次基于ArcheType Chunk内存管理 我们先再次回顾以下基于ArcheType的Chunk内存管理。每一类Entity都是由一些…...

哈希——哈希表

回顾/本期梗概 上期我们学习了哈希——字符串哈希&#xff08;空降链接&#xff09;&#xff0c;本期我们将学习哈希中的哈希表。 1、哈希表原理 &#xff08;1&#xff09;使用数组下标直接标记元素 哈希表&#xff08;也叫数列表&#xff09;&#xff1a;是一种高效的、通过把…...

简单了解 JVM

目录 ♫什么是JVM ♫JVM的运行流程 ♫JVM运行时数据区 ♪虚拟机栈 ♪本地方法栈 ♪堆 ♪程序计数器 ♪方法区/元数据区 ♫类加载的过程 ♫双亲委派模型 ♫垃圾回收机制 ♫什么是JVM JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。 虚拟机是指通过软件模…...

已经30岁了,想转行从头开始现实吗?什么样的工作算好工作?

我是29岁那年&#xff0c;完成从转行裸辞副业的职业转型。 如果你把职业生涯看成是从现在开始30岁&#xff0c;到你退休那年&#xff0c;中间这么漫长的30年&#xff0c;那么30岁转行完全来得及&#xff1b; 如果你觉得必须在什么年纪&#xff0c;什么时间内必须完成赚到几十…...

快速理解docker(一)docker 简介

在当今快速迭代的软件开发环境中&#xff0c;如何高效地部署、管理和扩展应用程序成为了开发者们面临的重大挑战。Docker&#xff0c;作为一款开源的容器化平台&#xff0c;凭借其轻量级、可移植性和易于部署的特性&#xff0c;迅速成为了解决这些挑战的热门选择。本文将带您走…...

RHCS认证-Linux(RHel9)-Ansible

文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附&#xff1a;安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible&#xff0c;ansible-navigator7.2 部署ansibl…...

【Python】Spyder:科学 Python 开发环境

在数据科学和科学计算领域&#xff0c;Python 已经成为了一个不可或缺的工具。为了提高开发效率和改善编程体验&#xff0c;一个功能强大且用户友好的开发环境是必需的。Spyder&#xff08;Scientific Python Development Environment&#xff09;正是这样一个为科学计算和数据…...

SpringBootWeb响应

2. 响应 前面我们学习过HTTL协议的交互方式&#xff1a;请求响应模式&#xff08;有请求就有响应&#xff09; 那么Controller程序呢&#xff0c;除了接收请求外&#xff0c;还可以进行响应。 2.1 ResponseBody 在我们前面所编写的controller方法中&#xff0c;都已经设置了…...

CMake 构建Qt程序弹出黑色控制台

CMake 构建Qt程序弹出黑色控制台...

虚拟机centos_7 配置教程(镜像源、配置centos、静态ip地址、Finalshell远程操控使用)

文章目录 一、下载镜像源&#xff08;准备工作&#xff09;1、开源网站2、下载 二、VMware配置centos三、配置静态IP地址四、Finalshell使用1、下载Finalshell2、连接虚拟机 五、谢谢观看&#xff01; 一、下载镜像源&#xff08;准备工作&#xff09; 1、开源网站 有许多开源…...

git 删除 git push 失败的记录

文章目录 问题分析 问题 git push 失败后如何清理 commit 提交的内容 当我们 git push 失败后&#xff0c;如果下次有新的改动需要push时&#xff0c;会出现如下报错 分析 找到需要回退的那次commit的 哈希值 git log然后就回退到了指定版本&#xff0c;这个时候再把新修改…...

【专题】2024年中国白酒行业数字化转型研究报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37755 消费人群趋于年轻化&#xff0c;消费需求迈向健康化&#xff0c;消费场景与渠道走向多元化&#xff0c;这些因素共同驱动企业凭借数据能力来适应市场的变化。从消费市场来看&#xff0c;消费群体、需求、场景及渠道皆展现出与…...

哪款品牌充电宝性价比比较高?五款性价比绝佳充电宝推荐

在现代生活中&#xff0c;充电宝已经成为我们日常出行和工作的必备品。然而&#xff0c;面对市场上琳琅满目的充电宝品牌&#xff0c;大家往往难以抉择。尤其是在近期&#xff0c;充电宝不合格产品的数量持续上升&#xff0c;据最新抽查结果显示&#xff0c;不合格率已经上升到…...

巨坑!!华为大数据平台sparksql,连接gauss200数据库

最近用华为大数据平台fusion6.5平台&#xff0c;写了一个sparksql 读取gauss200的MPP数据库的程序。 首先将spark 相关的jar依赖包&#xff0c;必须在华为大数据平台的客户端的spark/jars 这个文件里面去找到然后添加到idea 依赖里面。打包要把整体包打在里面。 核心代码片段…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...