Qt编写数据可视化大屏界面电子看板7-窗体浮动
一、前言
窗体浮动的场景也比较多,用途也比较大,比如视频监控模块,有时候需要调整大小和位置,而不是作为dock嵌入到布局中,一旦嵌入到布局中,大小和位置都被布局接管了,只能任由布局使唤,按在地上摩擦的那种。所以窗体浮动独立出来以后,就可以当做单独的窗体使用了,八个方位任意调整大小,(做到这里,是不是想起来,很多人写的无边框窗体类,自己写代码实现边框的拉伸调整大小?原来Qt也内置类无边框调整大小的位置哈!)同时窗体可以拖动到任意位置,比如可以拖动到中间部位占领一个位置,能够调整到最佳的16:9的大小效果。此时的视频看起来就很爽了,这个效果其实是Qt内置的,我在自定义的标题栏中增加了双击浮动,再次双击最大化显示的功能而已。
二、电子看板介绍
电子看板是目视化管理的一种表现形式,即对数据的状况一目了然地表现,主要是对于管理项目,它通过利用形象直观而又色彩适宜的各种视觉感知信息来组织现场生产活动,目视管理依据人类的生理特征,在生产现场充分利用信号灯、标识牌、符号颜色等方式来发出视觉信号,鲜明准确地刺激人的神经末梢,快速地传递信息,形象直观地将潜在的问题和浪费现象都显现出来。以便任何人都可以及时掌握管理现状和必要的情报,从而能够快速制定并实施应对措施。因此,管理看板是发现问题、解决问题的非常有效且直观的手段,是优秀的现场管理必不可少的工具之一。
三、功能特点
- 整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。
 - 子控件包括饼图+圆环图+曲线图+柱状图+柱状分组图+横向柱状图+横向柱状分组图+合格率控件+百分比控件+进度控件+设备状态面板+表格数据+地图控件(包括动态闪烁点+迁徙图等)+视频控件+其他控件等。
 - 二级界面可以自由拖动悬浮,支持最小化最大化关闭,响应双击自定义标题栏。
 - 数据源支持数据库采集(默认)、网络通信、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。
 - 采用纯QWidget编写,支持Qt4.6到Qt5.12.3任何版本,支持嵌入式linux比如树莓派、香橙派、全志、imx6等。
 - 提供三个内核版本,自定义控件版本+qchart版本+echart版本。
 - 内置多套配色风格样式,默认紫色,支持任何分辨率。
 - 可设置标题+目标分辨率+布局方案,启动立即应用。
 - 可设置主背景颜色+面板颜色+十字线游标颜色。
 - 可设置多条曲线颜色,没有设置颜色的情况下内置15套精美颜色随机应用。
 - 可设置标题栏背景颜色+文字颜色。
 - 可设置曲线图表背景颜色+文字颜色+网格颜色。
 - 可设置正常颜色+警戒颜色+报警颜色+禁用颜色+百分比进度颜色。
 - 可分别设置各种字体大小,比如全局+软件名称+标题栏+子标题栏+加粗标签等。
 - 可设置标题栏高度+表头高度+行高度。
 - 曲线支持游标+悬停高亮数据点和显示值,柱状图支持顶部(可设置顶端+上部+中间+底部)显示数据,全部自适应计算位置。
 - 主界面直接鼠标右键切换布局+配色方案+关闭开启某个二级窗体。
 - 自动记忆所有子窗口的大小和位置,下次启动立即应用。
 - 动态加载布局方案菜单,可以动态新建布局、恢复布局、保存布局、另存布局等,用户可以制造任意布局。
 - 二级窗体,双击从主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原。
 - 每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理。
 
四、配置文件说明
(1)、基本配置参数
| 字段 | 描述 | 默认值 | 
|---|---|---|
| WorkMode | 工作模式 timer-模拟数据 db-数据库采集 tcp-网络采集 http-post请求 | db | 
| MapStyle | 中间地图样式 image-静态图片 point-闪烁点 move-迁徙图 | point | 
| Title | 软件标题,显示在软件中间顶部 | 数字化工厂信息中心 | 
| Ratio | 分辨率,目前无意义 | 4096*216 | 
| Layout | 布局方案,每次切换布局方案以后都会保存 | 完整布局 | 
| Theme | 配色方案,每次切换配色方案以后都会保存 | 紫色风格 | 
| VideoAddr | 视频流地址,视频模块播放的视频地址 | 凤凰卫视 | 
| AutoRun | 是否开机启动 | false | 
| MoveEnable | 模块是否可以拖动,启用以后模块可以任意拖动 | true | 
| CutLeftBottom | 底部布局左侧是否切掉 | true | 
| CutRightBottom | 底部布局右侧是否切掉 | true | 
| StaticLine | 是否绘制静态定位线,为假则绘制游标十字线 | true | 
| ShowPercent | Y轴是否显示百分比 | true | 
| StepY | Y轴大尺度步长 | 6 | 
| CursorHideTime | 用户不操作鼠标自动隐藏鼠标的时间间隔,单位秒 | 5 | 
(2)、颜色配置参数
| 字段 | 描述 | 默认值 | 
|---|---|---|
| ColorMainBg | 主背景颜色 | QColor(4, 7, 38) | 
| ColorPanelBg | 面板背景颜色 | QColor(26, 29, 60) | 
| ColorLine | 十字线定位线颜色 | QColor(255, 0, 0) | 
| ColorLine1 | 线条1颜色 | QColor(0, 176, 180) | 
| ColorLine2 | 线条2颜色 | QColor(32, 159, 223) | 
| ColorLine3 | 线条3颜色 | QColor(255, 192, 0) | 
| ColorTitleBg | 标题栏背景颜色 | QColor(48, 48, 85) | 
| ColorTitleText | 标题栏文字颜色 | QColor(255, 255, 255) | 
| ColorChartBg | 曲线图表背景颜色 | QColor(38, 41, 74) | 
| ColorChartText | 曲线图表文字颜色 | QColor(250, 250, 250) | 
| ColorChartGrid | 曲线图表网格颜色 | QColor(180, 180, 180) | 
| ColorOk | 正常颜色 | QColor(0, 176, 180) | 
| ColorLow | 警戒颜色 | QColor(255, 192, 0) | 
| ColorAlarm | 报警颜色 | QColor(214, 77, 84) | 
| ColorDisable | 禁用背景颜色 | QColor(210, 210, 210) | 
| ColorPercent | 环形百分比背景颜色 | QColor(0, 254, 254) | 
(3)、字体和尺寸配置参数
| 字段 | 描述 | 默认值 | 
|---|---|---|
| MainFont | 全局字号 | 微软雅黑,12 | 
| NameFont | 软件名称字号 | 19 | 
| LabFont | 加粗标签字号 | 12 | 
| DeviceFont | 设备面板字号 | 12 | 
| SubTitleFont | 模块子标题栏字号 | 13 | 
| TitleFont | 模块标题栏字号 | 15 | 
| TitleHeight | 模块标题栏高度 | 23 | 
| HeadHeight | 表格表头高度 | 28 | 
| RowHeight | 表格行高度 | 25 | 
(4)、采集速度配置参数
| 字段 | 描述 | 默认值 | 
|---|---|---|
| IntervalModule1 | 模块1采集间隔 | 5000 | 
| IntervalModule2 | 模块2采集间隔 | 5000 | 
| IntervalModule3 | 模块3采集间隔 | 5000 | 
| IntervalModule4 | 模块4采集间隔 | 5000 | 
| IntervalModule5 | 模块5采集间隔 | 5000 | 
| IntervalModule6 | 模块6采集间隔 | 5000 | 
| IntervalModule7 | 模块7采集间隔 | 5000 | 
| IntervalModule8 | 模块8采集间隔 | 5000 | 
(5)、本地数据库配置参数
| 字段 | 描述 | 默认值 | 
|---|---|---|
| LocalDBType | 本地数据库类型,Sqlite、Mysql等 | Mysql | 
| LocalDBIP | 本地数据库主机地址 | 127.0.0.1 | 
| LocalDBPort | 本地数据库端口 | 3306 | 
| LocalDBName | 本地数据库名称 | bigscreen | 
| LocalUserName | 本地数据库用户名 | root | 
| LocalUserPwd | 本地数据库密码 | root | 
五、特别说明
- 可执行文件同级文件夹有layout+layout_1440+layout_1920,程序默认自动识别分辨率并加载对应的布局文件夹,比如1920分辨率则从layout_1920文件夹加载布局,并作为整体布局文件夹。
 - 程序默认是模拟数据,如果需要从数据库采集则修改配置文件WorkMode=db即可。
 - 如果发现布局拖动乱了,可以直接鼠标右键选择恢复布局即可,在保存布局以前。
 - 在中间地图模块鼠标右键可以弹出菜单,切换布局和配色方案等。
 - 在模块的标题栏上右键可以弹出默认的dock菜单,用来显示和隐藏各模块。
 - 软件关闭过程中会自动保存布局,下次启动以后自动应用。
 - 如果使用的默认的默认的配色方案比如紫色风格,则配置文件中的颜色全部无效,会自动应用代码中的颜色,如果需要启用自定义的颜色,则将配置文件的 Theme=\x81ea\x5b9a\x4e49\x98ce\x683c 即可。此时打开软件会应用配置文件中的颜色。
 - 右键菜单可以截图保存,默认命名为 配色方案名称_布局方案名称.png 保存在snap目录下。
 - 如果是XP系统请先执行fixff.cmd,用来修复ffmpeg在XP上不可用的BUG。
 - 在二级窗体的标题栏上右键弹出模块菜单,可以对单个模块打开关闭,其他地方右键全局菜单。
 - 可执行文件下载地址:https://pan.baidu.com/s/1o97IGvZgTgDhlkuXQa4B0w 提取码:r2bv ,会不定期更新程序,欢迎各位提出批评和建议。
 
六、效果图

Qt编写数据可视化大屏界面电子看板7-窗体浮动的更多相关文章
- Qt编写数据可视化大屏界面电子看板系统
		
一.前言 目前大屏大数据可视化UI这块非常火,趁热也用Qt来实现一个,Qt这个一站式超大型GUI超市,没有什么他做不了的,大屏电子看板当然也不在话下,有了QSS和QPainter这两个无敌的工具组合, ...
 - Qt编写数据可视化大屏界面电子看板9-曲线效果
		
一.前言 为了编写数据可视化大屏界面电子看板系统,为了能够兼容Qt4和嵌入式linux系统,尤其是那种主频很低的,但是老板又需要在这种硬件上(比如树莓派.香橙派.全志H3.imx6)展示这么华丽的界面 ...
 - Qt编写数据可视化大屏界面电子看板12-数据库采集
		
一.前言 数据采集是整个数据可视化大屏界面电子看板系统核心功能,没有数据源,这仅仅是个玩具UI,没啥用,当然默认做了定时器模拟数据,产生随机数据,这个可以直接配置文件修改来选择采用何种数据采集方法,总 ...
 - Qt编写数据可视化大屏界面电子看板11-自定义控件
		
一.前言 说到自定义控件,我是感觉特别熟悉的几个字,本人亲自原创的自定义控件超过110个,都是来自各个行业的具体应用真实需求,而不是凭空捏造的,当然有几个小控件也有点凑数的嫌疑,在编写整个数据可视化大 ...
 - Qt编写数据可视化大屏界面电子看板8-调整间距
		
一.前言 在数据可视化大屏界面电子看板系统中,前期为了使用目标客户机,调整间距是必不可少的工作,QMainWindow中的QDockWidget,会默认生成布局和QSplitter调整宽高大小,鼠标移 ...
 - Qt编写数据可视化大屏界面电子看板4-布局另存
		
一.前言 布局另存是数据可视化大屏界面电子看板系统中的额外功能之一,主要用于有时候用户需要在现有布局上做个微调,然后直接将该布局另存为一个布局配置文件使用,可以省略重新新建布局重新来一次大的调整的工作 ...
 - Qt编写数据可视化大屏界面电子看板3-新建布局
		
一.前言 能够新建布局,也是数据可视化大屏界面电子看板系统中的必备功能之一,新建布局这样的功能一般做到右键菜单中,单击新建布局菜单,弹出输入框要求输入新的布局的名称,为了更符合国情,直接支持中文名称, ...
 - Qt编写数据可视化大屏界面电子看板2-配色方案
		
一.前言 做完整个数据可视化大屏界面电子看板系统后,为了提升点逼格,需要提供好几套默认的风格样式以供选择,这样用户可以选择自己喜欢的配色方案来作为整个系统的颜色方案,去看了下市面上大部分的大屏电子看板 ...
 - Qt编写数据可视化大屏界面电子看板1-布局方案
		
一.前言 布局方案在整个数据可视化大屏界面电子看板系统中,是除了基础功能以外的核心功能之一,只有具备了布局方案这个功能,才能让用户随意调整自己想要的布局,保存成自定义名称的布局配置文件,这样就大大增加 ...
 
随机推荐
- 12.自定义v-过渡动画前缀
			
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
 - 基于JQ的记忆翻牌游戏
			
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
 - rabbitmq可靠性
			
本文翻译汇总自rabbitmq的官方文档. 翻译使用谷歌翻译后简单修改,部分内容读起来仍然比较晦涩,不过意思传达到了. 可靠性指南 本页介绍了如何使用AMQP和RabbitMQ的各种功能来实现可靠 ...
 - i p _ d o o p t i o n s函数
			
我们知道 i p i n t r在检测分组的目的地址之前调用 i p _ d o o p t i o n s.i p _ d o o p t i o n s被传给一个指针m,该指针指向某个分组, i ...
 - DNS域名解析系统介绍
			
域名系统(D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地址之间的转换及有关电子邮件的选路信息.这里提到的分布式是指在 I n t e r n e t上的 ...
 - Python中的基本类型简介
			
1.变量 变量不仅可以是数字,还可以是任意数据类型 命名规范:变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线_的组合,且不能用数字开头 python中等号“=”是赋值语句,可以把任意数据 ...
 - BZOJ 2039 / Luogu P1791 [2009国家集训队]employ人员雇佣 (最小割)
			
题面 BZOJ传送门 Luogu传送门 分析 考虑如何最小割建图,因为这仍然是二元关系,我们可以通过解方程来确定怎么建图,具体参考论文 <<浅析一类最小割问题 湖南师大附中 彭天翼> ...
 - Codeforces Round #584 D. Cow and Snacks
			
链接: https://codeforces.com/contest/1209/problem/D 题意: The legendary Farmer John is throwing a huge p ...
 - [Google Guava] 1.1-使用和避免null
			
原文链接 译文链接 译者: 沈义扬 Doug Lea 说,“Null 真糟糕.” 当Sir C. A. R. Hoare 使用了null引用后说,”使用它导致了十亿美金的错误.” 轻率地使用 ...
 - adb命令积累
			
1. 模拟事件全部是通过input命令来实现的,首先看一下input命令的使用: (原文:http://blog.csdn.net/huiguixian/article/details/1192538 ...