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

电商网站的模块如何做seo搜索优化

电商网站的模块,如何做seo搜索优化,logo设计制作网站,网站设计服务费英文一、前言说明 在监控系统中#xff0c;一般主界面肯定带了多个通道比如16/64通道的画面预览#xff0c;随着电脑性能的增强和多屏幕的发展#xff0c;再加上现在监控摄像头数量的增加#xff0c;越来越多的用户希望在不同的屏幕预览不同的实时画面#xff0c;一个办法是打…一、前言说明 在监控系统中一般主界面肯定带了多个通道比如16/64通道的画面预览随着电脑性能的增强和多屏幕的发展再加上现在监控摄像头数量的增加越来越多的用户希望在不同的屏幕预览不同的实时画面一个办法是打开多个软件实例拖动到不同的屏幕这个办法不可取最佳的办法是直接在现有软件基础上增加一个辅屏预览的功能单击一次就打开一个带64通道画面预览的窗体拖动到不同的屏幕上然后提供一个设备树用户自己点击需要预览的画面这样可以在现有基础上完美实现用户的需求。 之前已经实现的两个功能为这个辅屏预览的功能打下了坚实的基础一个是通道布局管理类只需要把new出来的64个videowidget控件放入其中即可直接复用。一个是设备树列表的生成完全独立的静态函数传入treewidget控件即可而且是多层级分组的设备树和主界面的完全一样所以要实现辅屏预览的功能只需要增加几十行代码就完整非常的漂亮。 二、效果图 三、相关代码 #include frmvideoscreen.h #include ui_frmvideoscreen.h #include qthelper.h #include videobox.h #include videowidgetx.h #include deviceutil.h #include devicetree.h #include deviceicon.hint 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[index] QString::number(index);//关闭所有视频并释放对象foreach (VideoWidget *videoWidget, videoWidgets) {videoWidget-setParent(NULL);videoWidget-stop();} }bool frmVideoScreen::eventFilter(QObject *watched, QEvent *event) {if (event-type() QEvent::MouseButtonDblClick) {//双击放大再次双击还原VideoWidget *videoWidget (VideoWidget *) watched;if (!isMax) {videoBox-hide_all();ui-gridLayout-addWidget(videoWidget, 0, 0);videoWidget-setVisible(true);} else {videoBox-show_all();}isMax !isMax;videoWidget-setFocus();} else if (event-type() QEvent::MouseButtonPress) {//设置当前按下的视频控件/弹出右键菜单videoSelect (VideoWidget *)watched;if (qApp-mouseButtons() Qt::RightButton) {videoMenu-exec(QCursor::pos());}}return QWidget::eventFilter(watched, event); }void frmVideoScreen::initForm() {//计数增加count;//取出索引int index;foreach (QString name, indexs) {if (!name.isEmpty()) {//用掉一个索引就置空index name.toInt();indexs[index] ;break;}}ui-frame-setFixedWidth(AppData::RightWidth);this-setAttribute(Qt::WA_DeleteOnClose);this-setProperty(index, index);this-setWindowTitle(QString(辅屏预览 %1).arg(index 1));connect(AppEvent::Instance(), SIGNAL(changeStyle()), this, SLOT(initIcon()));DeviceTree::initTree(ui-treeWidget);DeviceTree::initTreeParent(ui-treeWidget);DeviceTree::initTreeChild(ui-treeWidget);DeviceTree::hideTreeChild(ui-treeWidget);DeviceTree::initExpandItem(ui-treeWidget); }void frmVideoScreen::initIcon() {DeviceIcon::initTreeIcon(ui-treeWidget, false); }void frmVideoScreen::initVideo() {videoSelect NULL;videoWidgets.clear();//实例化视频控件QWidgetList widgets;for (int i 0; i AppConfig::VideoCount; i) {VideoWidget *videoWidget new VideoWidget;connect(videoWidget, SIGNAL(sig_fileDrag(QString)), this, SLOT(fileDrag(QString)));DeviceUtil::initVideoWidget2(videoWidget);videoWidget-installEventFilter(this);videoWidget-hideButton();videoWidget-setBgText(QString(通道 %1).arg(i 1, 2, 10, QChar(0)));widgets videoWidget;videoWidgets videoWidget;}//实例化右键菜单isMax false;videoMenu new QMenu(this);videoSelect videoWidgets.first();//实例化通道布局类videoBox new VideoBox(this);videoBox-setLayout(ui-gridLayout);videoBox-initMenu(videoMenu);videoBox-setWidgets(widgets);videoBox-show_all(); }void frmVideoScreen::fileDrag(const QString url) {VideoWidget *videoWidget (VideoWidget *)sender();videoWidget-open(url); }void frmVideoScreen::on_treeWidget_itemDoubleClicked(QTreeWidgetItem *item, int) {QString url item-data(0, Qt::UserRole).toString();if (DeviceTree::isUrl(url)) {//最后按下的哪个控件加载if (!videoSelect) {return;}//打开视频并自动移动到下一个videoSelect-open(url);int index videoWidgets.indexOf(videoSelect);VideoWidget *videoWidget videoWidgets.at(index 1);videoWidget-setFocus();videoSelect videoWidget;} else {//关闭所有视频foreach (VideoWidget *videoWidget, videoWidgets) {videoWidget-stop();}//逐个打开/直到全部打开完成QStringList urls DeviceTree::getUrls(item);int count qMin(videoWidgets.count(), urls.count());for (int i 0; i count; i) {videoWidgets.at(i)-open(urls.at(i));//如果电脑性能好可以不延时/不延迟可能会崩溃//QtHelper::sleep(AppConfig::OpenInterval, false);}} }四、相关地址 国内站点https://gitee.com/feiyangqingyun国际站点https://github.com/feiyangqingyun个人作品https://blog.csdn.net/feiyangqingyun/article/details/97565652文件地址https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码01jf 文件名bin_video_system。 五、功能特点 0.6.1 软件模块 视频监控模块各种停靠小窗体子模块包括设备列表、图文警情、窗口信息、云台控制、预置巡航、视频轮询、设备控制、悬浮地图、网页浏览等。视频回放模块包括本地回放、网络回放、远程回放、图片回放、视频上传等。电子地图模块包括图片地图、设备地图、设备移动、轨迹回放等。日志查询模块包括本地日志、设备日志等。系统设置模块包括系统设置基本设置、视频参数、数据库设置、颜色配置、功能激活等、录像机管理、摄像机管理、轮询配置、录像计划、用户管理、其他设置等。 0.6.2 基础功能 支持各种音视频流rtsp、rtmp、http、srt、ws等、音视频文件mp4、rmvb、avi等、本地设备本地摄像头、麦克风、桌面。支持多画面切换包括1、4、6、8、9、13、16、25、36、64画面切换。支持全屏切换多种切换方式包括鼠标右键菜单、工具栏按钮、快捷键altenter全屏esc退出全屏。支持视频轮询包括1、4、9、16画面轮询可设置轮询分组轮询预案、轮询间隔、码流类型等。支持onvif协议包括设备搜索、云台控制、预置位管理、设备控制图片参数、校对时间、系统重启、抓拍图片、OSD配置、网络配置等。支持权限管理不同的用户可以对应不同的模块权限比如删除日志、关闭系统等。数据库支持多种包括sqlite、mysql、sqlserver、postgresql、oracle、人大金仓等。支持本地设备采集比如本地桌面和摄像头支持设置分辨率、帧率等参数支持多屏幕。所有停靠模块都自动生成对应的菜单用来控制显示和隐藏在标题栏右键可以弹出。支持显示所有模块、隐藏所有模块、复位普通布局、复位全屏布局。支持图片地图和网页地图上双击设备图标弹出实时预览。摄像机节点拖曳到对应窗体播放视频同时支持拖曳本地文件直接播放。设备树双击分组打开对应分组下的所有视频双击设备子节点直接打开对应设备视频流。自动加载最后展开的节点。设备树支持自定义配置可以添加分组、删除分组、修改分组任意层级设置。设备树可以开启是否放大字体显示、是否显示主码流子码流节点、是否隐藏空组没有设备的分组自动隐藏。删除视频支持鼠标右键删除、悬浮条关闭删除、拖曳到视频监控面板外删除等多种方式。图片地图上设备按钮可自由拖动自动保存位置信息。地图上可以鼠标单击获取经纬度信息用来更新设备位置。视频监控面板窗体中任意通道支持拖曳交换瞬间响应。网页地图支持视图切换、运动轨迹显示、设备点位鼠标按下获取经纬度等。双击节点、拖曳节点、拖曳窗体交换位置等操作均自动更新保存最后的播放地址下次软件打开自动应用。右下角音量条控件失去焦点自动隐藏音量条带静音图标自动记忆最后的音量及静音状态。支持视频截图可指定单个或者对所有通道截图底部小工具栏也有截图按钮每个视频控件悬浮条也有抓拍按钮。支持辅屏预览可以打开多个在多个屏幕分别打开64通道按需显示视频。支持超时自动隐藏鼠标指针、自动全屏机制。支持onvif云台控制可上下左右移动云台摄像机包括复位和焦距调整等。支持onvif预置位可以添加、删除、修改预置位可以调用起始位。支持OSD增删改查可以通过onvif协议添加及修改OSD信息。支持onvif图像参数设置包括明亮度、对比度、饱和度、尖锐度等。支持onvif其他操作包括抓图、网络设置、校时、重启、事件订阅等。支持任意onvif摄像机包括但不限于海康、大华、宇视、天地伟业、华为等。可保存视频可通过录像计划存储也可在悬浮条手动切换开始录像和停止录像。可设置视频流通信方式tcp或udp可设置视频解码是速度优先、质量优先、均衡处理、最快速度等。可设置软件中文名称、英文名称、LOGO图标等。存储的视频文件支持导出到指定目录支持批量上传到服务器。完善的录像计划设置支持每个通道7 * 24小时每半小时设置是否存储录像。音视频同步显示以及音视频同步存储到MP4文件。 0.6.3 特色功能 主界面采用停靠窗体模式各种组件以小模块的形式加入可自定义任意模块加入。停靠模块可拖动任意位置嵌入和悬浮支持最大化全屏支持多屏幕。双重布局文件存储机制正常模式、全屏模式都对应不同的布局方案自动切换和保存比如全屏模式可以突出几个模块透明显示在指定位置更具科幻感现代化。原创onvif协议机制采用底层协议解析udp广播搜索http请求执行命令更轻量易懂易学习拓展不依赖任何第三方组件比如gsoap。原创数据导入、导出、打印机制跨平台不依赖任何组件瞬间导出数据。内置多个原创组件宇宙超值超级牛逼包括数据导入导出组件导出到xls、pdf、打印、数据库组件数据库管理线程、自动清理数据线程、万能分页、数据请求等、地图组件、视频监控组件、文件多线程收发组件、onvif通信组件、通用浏览器内核组件等。自定义信息框、错误框、询问框、右下角提示框包含多种格式等。精美换肤高达20套皮肤样式随意更换所有样式全部统一包括菜单等。选中通道对应设备树节点高亮选中通道节点对应视频控件高亮方便查看当前通道信息。视频控件悬浮条可以自行增加多个按钮监控界面底部小工具栏也可自行增加按钮。双击摄像机节点自动播放视频双击节点自动依次添加视频会自动跳到下一个双击父节点自动添加该节点下的所有视频。可选主码流、子码流。录像机管理、摄像机管理可添加删除修改导入导出打印信息立即应用新的设备信息生成树状列表不需重启。摄像机搜索支持一键搜索和批量添加支持onvif的NVR一键添加子设备可以手动设置开始地址和数量一键生成摄像机信息。可选多种内核自由切换ffmpeg、vlc、mpv等均可在pro中设置。推荐用ffmpeg跨平台最多默认提供好了linux和mac平台上编译好的库。支持windows、linux、macos等系统硬解码还支持嵌入式linux RKMPP硬解码可设置硬解码类型dxva2、d3d11va、vaapi、vdpau等。各种模块可以勾选是否激活方便根据实际需求搭配各种组合比如隐藏电子地图模块隐藏远程回放模块只保留本地回放等。尽最大化可能将常用的功能封装接口全局静态函数调用极其容易使用提供各种使用示例方便用户二开。默认采用opengl绘制视频超低的CPU资源占用支持yuyv和nv12两种格式绘制性能爆表。标签和图形信息支持三种绘制方式绘制到遮罩层、绘制到图片、源头绘制对应信息可以存储到文件。包括但不限于视频监控内核组件的所有功能可参阅说明书中功能介绍 [视频监控内核](###8.1 视频监控内核)。高度可定制化用户可以很方便的在此基础上衍生自己的功能比如增加自定义模块增加运行模式、机器人监控、无人机监控、挖掘机监控、广播监控等。支持xp、win7、win10、win11、linux、mac、各种国产系统UOS、中标麒麟、银河麒麟等、嵌入式linux等系统。注释完整项目结构清晰超级详细完整的使用开发手册精确到每个代码文件的功能说明不断持续迭代版本。
http://www.dnsts.com.cn/news/102293.html

相关文章:

  • c2c模式的网站文件管理软件
  • 做企业专业网站一般要多少钱图书馆网站信息化建设
  • 做前后端网站教程wordpress设置文章标题
  • 郑州网站开发培训价格中国建设银行个人信息网站
  • 网站转化率天津城市建设管理职业学院网站
  • 优质网站排名公司西安软件外包公司
  • 防止网站扫描室内设计师培训哪里好
  • 网站建设公司走进深圳一百讯网站制作的软件有哪些
  • 深圳做分销网站设计上海搜索优化推广
  • 制作一个网站难吗易湃智能营销平台
  • 专业网站建设的公司哪家好安卓app安装
  • 导航网站如何被百度收录免费商业源码论坛
  • 邢台做移动网站报价一个服务器可以备案几个网站吗
  • 江西省楚天建设集团有限公司网站六安网站建设报价方案
  • 网站推广途径方法火车头wordpress模块
  • 电子科技东莞网站建设对外网站建设情况汇报
  • 网站盒子怎么做网站客户端制作教程
  • 禹城市住房和城乡建设局网站小型网站开发小论文
  • 忻州市住房城乡建设局网站深圳最新通告今天
  • 网站建设河南公司一级域名网站怎么做
  • wordpress网站第一次打开慢山东省住房和城乡建设厅网站注册中心
  • 网站标题字符郑州最好的品牌策划公司
  • 广州网站优化公司咨询大学网站模板html
  • 蛋糕店网站源码wordpress媒体库修改文件名
  • 潍坊网站关键词推广wordpress 七牛cdn
  • 龙岗龙城街道做网站哈尔滨网站建设价格低
  • 中国装修网官方网站清远网站制作公司
  • 赫山区网站建设如何在外管局网站做付汇延期
  • 网站建设的空间是什么外包做网站不付尾款
  • 网站建设的现状分析淘宝的网站开发历史及难度