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

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

运行结果:

 

 

 

相关文章:

  • 开源【汇总】
  • from import *
  • 【linux】内核源码TCP->IP->L2层函数调用继续摸索中
  • win10修改远程桌面端口号,在Windows 10中修改远程桌面端口号的步骤
  • 数据库新技术【分布式数据库】
  • 信息安全、网络安全、网络空间安全傻傻分不清?
  • python18 正则表达式
  • ubuntu查看当前系统版本
  • Spring Security——结合JWT实现令牌的验证与授权
  • 八、yolov8模型预测和模型导出(目标检测)
  • 如何用GO语言实现冒泡排序算法?
  • LeetCode---402周赛
  • Win11 删除文件时提示“找不到该项目,请重试”的解决办法
  • 人工智能--搭建人工神经网络
  • Scala学习笔记14: 模式匹配和样式类
  • Android开源项目规范总结
  • Bootstrap JS插件Alert源码分析
  • extjs4学习之配置
  • If…else
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • mysql 5.6 原生Online DDL解析
  • MySQL几个简单SQL的优化
  • 工程优化暨babel升级小记
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 你不可错过的前端面试题(一)
  • 前端设计模式
  • 深入浅出webpack学习(1)--核心概念
  • 使用common-codec进行md5加密
  • 用Python写一份独特的元宵节祝福
  • 转载:[译] 内容加速黑科技趣谈
  • postgresql行列转换函数
  • ​​​​​​​​​​​​​​Γ函数
  • #nginx配置案例
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (1)(1.13) SiK无线电高级配置(六)
  • (160)时序收敛--->(10)时序收敛十
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (day6) 319. 灯泡开关
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (定时器/计数器)中断系统(详解与使用)
  • (二)PySpark3:SparkSQL编程
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)LINQ之路
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET企业级应用架构设计系列之应用服务器
  • .net专家(高海东的专栏)
  • .Net组件程序设计之线程、并发管理(一)
  • /run/containerd/containerd.sock connect: connection refused
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @ModelAttribute 注解
  • @SentinelResource详解