首页| 论坛| 消息

标题:Qt监控设备离线检测/实时监测设备上下线/显示不同的状态图标/海康大华宇视华为监控系统
作者:liudianwu
日期:2025-02-09 10:07
内容:

## 一、前言说明
监控系统中一般有很多设备,有些用户希望知道每个设备是否已经上线,最好有不同的状态图标提示,海康的做法是对设备节点的图标和颜色变暗处理,离线的话就变暗,有可能是加了透明度,而大华的处理是有个清晰的图标表示,上线图标右下角有个绿色指示灯,离线的右下角是个圆形的叉叉,如果右侧监控视频通道已经打开过,则又是一个带打开了的图标,非常直观,文字颜色可以不用去变,三种图标切换,这是目前为止看到的最完美的处理方案,于是也按照这个方案来实施。
之前做设备多级分组的时候,就已经把各种设备树对应的功能单独拆分完整,每个函数都单独干自己的事情,比如第一步就是根据分组配置信息生成分组的treewidget结构。第二步就是逐个遍历所有分组节点,查找摄像机表中是否有该分组的子设备,有的话则插入子节点。第三步是遍历所有节点设置图标,分组是分组的图标,摄像头是摄像头的图标,后面还可以自行区分是枪机还是球机或者其他类型的设备。第四步是读取配置文件展开最后展开的节点。总共四步才算完成,每个函数干干净净只干自己的事情,之前全部在一个函数中实现,不易于管理和拓展,比如需要区分不同的图标。
## 二、效果图

## 三、相关代码
```cpp
#include "deviceicon.h"
#include "devicetree.h"
#include "qthelper.h"
#include "iconhelper.h"
QMap DeviceIcon::icons = QMap();
void DeviceIcon::initIcon()
{
if (icons.count() > 0) {
icons.clear();
}
//图标的大小和宽高
int size = 22;
int width = size + 2;
int height = size + 2;
//可以自行查找对照表改成不同的图标/还可以增加不同的图标用来区分枪机球机等
QString colorOn = GlobalConfig::TextColor;
QString colorOff = AppConfig::ColorIconAlarm;
icons.insert("nvr", IconHelper::getPixmap(colorOn, 0xe9ef, size, width, height));
icons.insert("group", I ..

回复 发表
主题 版块