多路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

相关文章

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

chart 完成拓扑图单节点拖拽不影响其他节点位置

就是做这种的功能,箭头原本是可以动态重复移动的,但不知道哪里问题导致没箭头了,然后补了个edgeSymbol: ['','arrow'], 字段,才增加了箭头。 拖拽某个节点,只有关联到的线条会跟着变动其他的节点位置不变。 参考 https://gallery.echartsjs.com/editor.html?c=x8Fgri22P9 https://echarts.baidu.com/exa

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在