多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能

本文主要是介绍多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

xviewer.h

public:XViewer(QWidget* parent = Q_NULLPTR);//编辑摄像机void SetCam(int index);//121 
public slots:void AddCam();  //新增摄像机配置120void SetCam();  //121void DelCam();  //121
private:Ui::XViewerClass ui;QMenu left_menu_;

xviewer.cpp


void XViewer::SetCam(int index)//121
{auto c = XCameraConfig::Instance();QDialog dlg(this);dlg.resize(800, 200);QFormLayout lay;dlg.setLayout(&lay);//  标题1 输入框1//  标题2 输入框2QLineEdit name_edit;lay.addRow(C("名称"), &name_edit);QLineEdit url_edit;lay.addRow(C("主码流"), &url_edit);QLineEdit sub_url_edit;lay.addRow(C("辅码流"), &sub_url_edit);QLineEdit save_path_edit;lay.addRow(C("保存目录"), &save_path_edit);QPushButton save;save.setText(C("保存"));connect(&save, SIGNAL(clicked()), &dlg, SLOT(accept()));lay.addRow("", &save);//编辑 读入原数据显示if (index >= 0){auto cam = c->GetCam(index);name_edit.setText(C(cam.name));url_edit.setText(C(cam.url));sub_url_edit.setText(C(cam.sub_url));save_path_edit.setText(C(cam.save_path));}for (;;){if (dlg.exec() == QDialog::Accepted) //点击了保存{if (name_edit.text().isEmpty()){QMessageBox::information(0, "error", C("请输入名称"));continue;}if (url_edit.text().isEmpty()){QMessageBox::information(0, "error", C("请输入主码流"));continue;}if (sub_url_edit.text().isEmpty()){QMessageBox::information(0, "error", C("请输入辅码流"));continue;}if (save_path_edit.text().isEmpty()){QMessageBox::information(0, "error", C("请输入保存目录"));continue;}break;}return;}//存储数据XCameraData data;strcpy(data.name, name_edit.text().toLocal8Bit());strcpy(data.url, url_edit.text().toLocal8Bit());strcpy(data.sub_url, sub_url_edit.text().toLocal8Bit());strcpy(data.save_path, save_path_edit.text().toLocal8Bit());if (index >= 0) //修改{c->SetCam(index, data);}else //新增{c->Push(data);  //插入数据}c->Save(CAM_CONF_PATH); //保存到文件RefreshCams();  //刷新显示
}void XViewer::AddCam()//120
{SetCam(-1);
}void XViewer::SetCam()//121
{int row = ui.cam_list->currentIndex().row();if (row < 0){QMessageBox::information(this, "error", C("请选择摄像机"));return;}SetCam(row);
}void XViewer::DelCam()//121
{int row = ui.cam_list->currentIndex().row();if (row < 0){QMessageBox::information(this, "error", C("请选择摄像机"));return;}stringstream ss;ss << "您确认需要删除摄像机"<< ui.cam_list->currentItem()->text().toLocal8Bit().constData();ss << "吗?";if (QMessageBox::information(this,"confirm",C(ss.str().c_str()),QMessageBox::Yes,QMessageBox::No) != QMessageBox::Yes){return;}XCameraConfig::Instance()->DelCam(row);RefreshCams();
}void XViewer::RefreshCams()
{auto c = XCameraConfig::Instance();ui.cam_list->clear();int count = c->GetCamCount();for (int i = 0; i < count; i++){auto cam = c->GetCam(i);auto item = new QListWidgetItem(QIcon(":/XViewer/img/cam.png"), C(cam.name));ui.cam_list->addItem(item);}
}//119

运行结果:

 

 

 

这篇关于多路h265监控录放开发-(8)完成摄像机管理的修改和删除功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083689

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has