
在 Qt 上位机、设备监控和工业控制项目中经常需要展示压力、温度、转速、电压、电流、流量和负载率等数据。相比普通数字仪表盘可以更直观地展示当前数值、预警区间、危险状态和历史峰值让操作人员快速判断设备运行情况。这次分享一个基于Qt Widgets QPainter自绘的工业仪表盘控件IndustrialGaugeDemo控件不依赖第三方仪表盘库也不需要外部图片素材可以直接移植到自己的 Qt 项目中。主要功能目前支持圆形仪表盘半圆仪表盘主刻度和小刻度刻度密度设置正常、预警、危险颜色区间指针平滑动画危险区间报警闪烁阈值辅助指针历史峰值标记数字读数显示标题和单位设置数值范围和主题颜色配置它不仅能显示当前值还可以同时表达预警、危险、峰值和阈值等工业状态。圆形和半圆模式同一个控件支持圆形和半圆两种显示模式。圆形模式gauge-setDialMode(GaugeWidget::DialMode::Circular);半圆模式gauge-setDialMode(GaugeWidget::DialMode::SemiCircle);圆形仪表盘适合单独放大展示半圆仪表盘更适合横向卡片和多个指标并排布局。设置预警和危险区间工业数据通常需要划分正常、预警和危险状态。gauge-setWarningRange(70, 85); gauge-setDangerRange(85, 100);设置后控件会用不同颜色绘制对应区间。当当前值进入危险区还可以开启报警闪烁gauge-setAlarmBlinkEnabled(true);适合温度过高、压力超限、电流异常、转速过快和设备负载过高等场景。添加辅助指针辅助指针可以用来标记预警值、危险值、目标值、平均值或额定值。gauge-setSecondaryPointers({ {预警, 70, QColor(#D88416), true}, {危险, 85, QColor(#D64545), true}, });这样可以直接看到当前值距离报警阈值还有多远。历史峰值标记部分工业数据可能会瞬间升高然后快速回落。只显示当前值时操作人员可能无法发现刚才出现过异常因此控件支持历史峰值标记。开启峰值显示gauge-setPeakVisible(true);清除峰值gauge-resetPeakValue();该功能适合记录最大压力、最高温度、峰值电流、最高转速和最大负载。控件如何移植仪表盘控件本体只有两个文件src/GaugeWidget.h src/GaugeWidget.cpp将这两个文件添加到自己的 Qt 工程中即可创建和使用仪表盘。最小使用示例auto *gauge new GaugeWidget(this); gauge-setTitle(管路压力); gauge-setUnit(kPa); gauge-setRange(0, 100); gauge-setWarningRange(70, 85); gauge-setDangerRange(85, 100); gauge-setDialMode(GaugeWidget::DialMode::Circular); gauge-setTickDensity(10, 5); gauge-setAlarmBlinkEnabled(true); gauge-setPeakVisible(true); gauge-setValue(62.0);实时更新数据接入串口、Modbus、PLC、MQTT 或 TCP 数据后只需要调用gauge-setValue(value);即可更新仪表盘。监听数值变化connect(gauge, GaugeWidget::valueChanged, this, [](double value) { qDebug() value; });在实际项目中可以在串口接收、网络通信或定时采集数据后将最新值传给仪表盘。适用场景这个控件适合Qt 工业上位机设备监控界面PLC 调试软件产线运行看板传感器数据采集系统压力、温度和转速监控电压、电流和负载率展示工业大屏和控制台如果需要精确对比多个数据表格更合适如果需要查看历史变化曲线图更合适。但如果需要快速判断设备当前状态仪表盘会更加直观。https://download.csdn.net/download/qq_40170041/93137665