基于Qt视频监控系统(百度地图,屏幕分割,双击放大,视频录制回放)下篇
关于监控画面分割界面:
首先要明白如何布局。一般监控系统的监控画面都是栅格布局,想要实现四屏,九屏,十六屏,就应该先为十六屏布局,转为九屏时,隐藏右下角的七个屏幕,再将这七个移除栅格布局。同理转为四屏时,隐藏九屏右下角5个屏幕,再将这五个移除栅格布局。
![](/assets/blank.gif)
十六屏转为九屏时候,隐藏移除红色区域屏幕。
代码我以四屏转一屏为例:
![](/assets/blank.gif)
从gridLayout(栅格布局)移除要隐藏的label,再将该label在窗口中隐藏不显示。
想要复原之前的四屏布局,则要在gridLayout中重新加入刚刚隐藏的label。
![](/assets/blank.gif)
在监控系统中加入百度地图
首先想要访问百度地图,就要让Qt能够访问网页,访问网页就会用到html文件。Qt提供了访问网页的插件,但需要在安装Qt时勾选这两个插件。
![](/assets/blank.gif)
因为html涉及到JavaScript语言,所有mingw编译环境下是不支持的,所以只能使用VS进行编译,VS版本最好为2017。所以opencv库需要编译成vs能使用的。
Qt准备了两个非常方便的类,一个是QWebEngineView(用来访问网页),一个是QWebChannel(用来实现JavaScript与Qt进行交互)
这两个类需要在工程文件里面加入
QT += webenginewidgets
QT += webchannel
如果没有上一步所安装的插件,Qt只会提示找不到这两个工程文件。
准备好以上工作,可以开始准备百度地图提供的Api接口。
首先在网页中搜索百度地图的开放平台进行AK密钥申请。网址为:https://lbsyun.baidu.com/
![](/assets/blank.gif)
注意:创建的应用类型一定要选择浏览器端,百度地图还准备了白名单,防止其他网址访问盗用你的密钥。
百度地图为开发者准备了各种各样的源码,根据自己想要实现的功能选择对应的代码。将选择的代码复制下来,保存文件后缀名为.html的文件,再将该文件添加到Qt项目本地文件中。再添加到工程中。
![](/assets/blank.gif)
大家会发现百度地图提供的代码中有”你的密钥“四个字,这里就是填写你之前在百度开放平台申请的AK密钥。有了密钥你才有权限访问百度地图。
有了百度地图提供的html文件,就可以使用QWebEngineView类去读取html文件。
![](/assets/blank.gif)
大家也可以直接输入网址测试是否可以访问网页。
![](/assets/blank.gif)
下面是对html文件的修改和注释:
![](/assets/blank.gif)
这样就可以自定义图标样式,自定义放置在百度地图上面。如下图所示:
![](/assets/blank.gif)
关于Qt与JavaScript的交互
想要通过百度地图中去调用Qt里面的函数就要让Qt与JavaScript实现交互。
要想让Qt与JavaScript进行交互,需要用到QWebChannel类。然后还要在html文件中加入qwebchannel.js文件。qwebchannel.js在Qt文件夹中有提供,加qwebchannel.js复制粘贴到工程文件下,再添加到html文件中去。
qwebchannel.js是Qt提供的能与JavaScript进行相互调用的js文件。有了它才可以进行交互。
![](/assets/blank.gif)
在html文件中加入qwebchannel.js文件的路径。
实现交互Qt中的准备:
![](/assets/blank.gif)
两者交互需要定义一个同名的对象名,调用channel->registerObject("baidumap", this);设置对象名。后续html文件中也要同名。创建交互通道setWebChannel(channel)。
Html文件中的准备:
![](/assets/blank.gif)
当图标被双击是就会调用Qt中的函数,实现了在JavaScript中调用Qt中的函数,实现交互。
![](/assets/blank.gif)
该函数实现就会跳出一个交互的窗口如下:
![](/assets/blank.gif)
显示调用成功。因此就可以实现点击地图图标,控制打开摄像头的操作。
下面是我的视频监控系统的整体实现界面:
![](/assets/blank.gif)
至此结束,感谢阅读!
基于Qt视频监控系统(百度地图,屏幕分割,双击放大,视频录制回放)下篇相关推荐
- 视频监控系统显示大屏幕用液晶拼接屏还是液晶监视器?
视频监控系统与我们的日常生活息息相关,在一些大型的企业.社区物业.商场.银行等场合都会安装视频监控录像设备,以确保我们的人身.财产安全,及时发现不法分子的活动,能做到提前发现与作为后期的证据使用.视频 ...
- 视频监控系统由哪几部分组成?(视频监控入门基础-附思维导图)
视频监控系统是安全技术防范工程的核心部分,也是很多弱电工程新人踏入行业中最先接触的部分.以前就经常有人咨询白哥,初入弱电行业该如何学起,我给的建议就是以视频监控系统为起点.为支点,围绕这套系统不断扩大 ...
- 视频监控系统 摄像头与网络存储服务器兼容,网络视频监控系统技术要点
1 高清视频监控的主流技术 宽动态 数字宽动态并没有达到真正意义上的扩大成像动态范围的目的,而是通过软件的图像后处理算法提高了局部区域的对比度,一般由摄像机ISP模组实现.我们肉眼可辨别的灰阶范围十分 ...
- 视频监控系统app服务器如何设置,手机app视频监控服务器配置
手机app视频监控服务器配置 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访问时 ...
- 监控系统为什么要加流媒体服务器,视频监控系统为什么要使用流媒体服务器做视频分发?...
原因解析: 1.直播视频的格式多种多样,不管是移动端还是PC端都不可能支持这么多样化格式的视频,因此流媒体服务器的首要任务就是将视频更改为统一的格式,从而解决播放器格式不统一的问题,在不改变原视频的画 ...
- Linux下基于qt的视频监控系统
目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...
- b s架构监控java,基于B/S的视频监控系统的设计与实现
基于B/S的视频监控系统的设计与实现 本文分析了基于C/S架构的视频监控系统的缺点和B/S结构的诸多优点,通过需求分析,设计实现了一种以B/S为架构的视频监控系统,并针对现存视频监控系统在权限控制方面 ...
- 数字视频监控系统开发及应用
前言 第1章 概述 1.1 模拟视频监控现状 1.1.1 模拟视频监控系统简介 1.1.2 模拟视频监控系统存在的问题 1.2 数字视频监控系统 1.2.1 数字视频监控系统的组成 1. ...
- 网络视频监控系统解决方案概述
随着视频监控方案的应用普及,视频监控已经与人们的生活越来越密切,而随着网络技术的发展,网络视频监控系统应用已经成为一种趋势.尤其是互联网.电视技术.通信技术开始融合以后,基于互联网平台的视频监控网 ...
- 视频监控系统及系统各节点设备理解和监控系统发展简介
从这几个层面理解视频监控系统中的设备:作用.分类.软件功能.组成部件.搭配使用(上一节点.下一节点.配合设备),本文从底层向上层介绍. 整个视频监控系统分为前端视频采集设备.中端传输处理设备.后端显示 ...
最新文章
- 安卓开源项目周报0411
- 为了我心中的女神,我竟然转行做了程序员
- 基于wayland的linux桌面,揭开Wayland的面纱(二):Wayland应运而生
- postgresSQL 实现数据修改后,自动更新updated_date/ts等字段
- LNMP架构之环境搭建
- 多组测试数据(求和)IV
- 日常生活小技巧 --惠普战66三代 重装系统
- whitelabel error page什么意思_什么是RESTful API?总算能说清楚了
- 2019.03.20 mvt,Django分页
- linux shell 读取文件脚本
- 老公年收入百万,却不愿拿出二十万帮我弟弟买房子,我该离婚吗?
- bzoj 2431: [HAOI2009]逆序对数列
- VS2010启动总是遇到异常提示的解决
- “win+PrtSc”图片没有保存到图片文件夹中的问题
- 如何下载可爱随意字体KISS ME
- 无法解析 taglibs:standard:1.1.2
- 【原创】QT5-卸载精灵v1.0-卸载windows软件-简易版
- java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA
- java 微信文章评论点赞_微信文章留言评论刷赞怎么弄?如何给微信文章
- ADB——查看手机设备信息