首页| 论坛| 消息

标题:Qt监控系统辅屏预览/可以同时打开4个屏幕预览/支持5x64通道预览/onvif和rtsp接入/性能好
作者:liudianwu
日期:2025-01-25 10:00
内容:

## 一、前言说明
在监控系统中,一般主界面肯定带了多个通道比如16/64通道的画面预览,随着电脑性能的增强和多屏幕的发展,再加上现在监控摄像头数量的增加,越来越多的用户希望在不同的屏幕预览不同的实时画面,一个办法是打开多个软件实例,拖动到不同的屏幕,这个办法不可取,最佳的办法是,直接在现有软件基础上,增加一个辅屏预览的功能,单击一次就打开一个带64通道画面预览的窗体,拖动到不同的屏幕上,然后提供一个设备树,用户自己点击需要预览的画面,这样可以在现有基础上完美实现用户的需求。
之前已经实现的两个功能,为这个辅屏预览的功能打下了坚实的基础,一个是通道布局管理类,只需要把new出来的64个videowidget控件放入其中即可,直接复用。一个是设备树列表的生成,完全独立的静态函数,传入treewidget控件即可,而且是多层级分组的设备树,和主界面的完全一样,所以要实现辅屏预览的功能,只需要增加几十行代码就完整,非常的漂亮。
## 二、效果图

## 三、相关代码
```cpp
#include "frmvideoscreen.h"
#include "ui_frmvideoscreen.h"
#include "qthelper.h"
#include "videobox.h"
#include "videowidgetx.h"
#include "deviceutil.h"
#include "devicetree.h"
#include "deviceicon.h"
int frmVideoScreen::count = 0;
QStringList frmVideoScreen::indexs = QString("0|1|2|3").split("|");
frmVideoScreen::frmVideoScreen(QWidget *parent) : QWidget(parent), ui(new Ui::frmVideoScreen)
{
ui->setupUi(this);
this->initForm();
this->initIcon();
this->initVideo();
QtHelper::setFormInCenter(this);
}
frmVideoScreen::~frmVideoScreen()
{
delete ui;
}
void frmVideoScreen::closeEvent(QCloseEvent *)
{
//计数减少
count--;
//更新索引
int index = this->property("index").toInt();
indexs = QString::number(index);
//关闭 ..

回复 发表
主题 版块