标题:Qt编写可视化大屏电子看板系统16-标准柱状图
作者:liudianwu
日期:2021-08-18 08:38
内容:
## 一、前言
标准柱状图是大屏系统中最常用的一种展示数据效果图,提供不同的柱子显示数据值,在QCustomPlot的基础上拓展了顶部显示对应的值,不同的柱子不同的颜色,同时还可以调用内置的触发报警颜色的机制,比如超过90%就自动红色显示,这样用户使用的时候只要传入值就行,默认的机制一般是三种颜色,正常颜色、警告颜色、报警颜色,三种颜色都对应触发值,超过对应的值就显示对应的颜色。一般的规则都是大于设定的警戒值就触发,其实真实世界是简单的也是复杂的,还有不少的场景是低于一定的值才报警,倒过来的规则,可能会有三种规则,规则1大于报警值报警(大部分的规则都是这个),规则2小于报警值报警(比如气体浓度),规则3在范围值内则报警。
在柱状图上面显示对应的值这个需求非常多,不清楚为何很多曲线图控件不默认就支持这个特性,而是需要额外的写代码绘制处理,比如Qt界著名的曲线图三剑客QCustomPlot、Qwt、QChart都默认没有这个效果,好在开源的世界是丰富多彩的,这三剑客本身都是开源的,源代码量也不是很多,稍微花点时间看看学习下也是不错的选择,而且柱状图上显示对应的值的处理和代码网上也是一大堆,面向百度和搜索编程相信是众多程序员的选择和喜爱。
开源库QCustomPlot有多个版本,基本上可以归纳为v1和v2,在部分代码处理上有区别,所以为了支持v1和v2两个版本,在做二次开发的时候都做了兼容,其实必须性不大,毕竟v2也从Qt4.6支持到了Qt6,蛮好的,做支持的时候纯粹为了锻炼技术,看下两者到底区别在哪,处理方式有何区别,还有个稍微微小的考虑就是可能有些用户还在用v1为了兼容这批用户,省得换成v2整个项目曲线的地方改动不小。
## 二、功能特点
1. 采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。
2. 子控件包括饼图、圆环图、曲线图、柱状图、柱状分组图、横向柱状图、横向柱状分组图、合格率控件、百分比控件、进度控件、设备状态面板、表格数据、地图控件、视频控件等。
3. 二级界面可以自由拖动悬浮,支持最小化隐藏、最大化关闭、响应双击自定义标题栏。
4. 数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。
5. 采用纯QWidget编写,亲测Qt4.6到Qt6.2任意版本,理论上支持后续其他Qt版本。
6. 超强跨平台,亲测windows、linux、mac、国产uos、国 ..