夜雨聆风学习资料网

ARTICLE · 1350741

QT自定义控件之消化池处理系统(源码开源)

QT自定义控件之消化池处理系统(源码开源)
一、前言
hello,这里是Q态王。。。
今天要见面的是“消化池处理系统”
技术栈:C++ / Qt Widgets / QPainter
二、作品展示
画面主体是:
厌氧消化池罐体,配套进料泵、换热器、脱硫装置、储气罐、脱气单元等全套工艺设备;彩色管线代表不同介质管路,管线上带流动箭头动画;消化池内部是漩涡渐变流体效果,顶部带沼气升腾烟雾动画;侧边和底部实时展示液位、电流、温度、CH₄/CO₂/H₂S 等气体监测参数;右上角提供开始 / 停止仿真按钮,控制整套动画启停。
整个画面是一个继承自QWidget的自定义绘图控件,重写paintEvent,搭配QTimer定时器驱动动画帧刷新。
亮点分析:
✨亮点 1:QPainterPath 构建柔性工艺管线,彩色渐变管路
  • 污水管线、沼气管线、循环管线分配独立的渐变,同时对应图里的蓝、黄、紫、青多色管道;
  • 管线路径对象提前预构建,动画阶段只修改箭头偏移量,不重复重建 Path,大幅降低 CPU 开销;
  • 支持动态显隐:比如阀门关断时,自动隐藏该段管路流动动画。

✨亮点 2:测点数据与画面绑定,工业组态数据联动

画面左侧、底部的参数面板(液位 22m、电流 23A、CH₄ 29%、H₂S 31ppm),全部是动态文本绘制。 模拟每次刷新时,从数据模型读取最新值,用drawText绘制,异常值可以自动切换红色告警色。

✨亮点 3:轻量化、跨平台,摆脱商业组态依赖

整套基于 Qt Widgets,编译后是独立 exe,不需要装组态运行环境,Windows、Linux 工控机都可以直接部署。

展示下动态图的效果:

三、实现流程

1、核心代码
本期的核心代码主要在CustomWidget.cpp中
部分代码展示:
#if defined(_MSC_VER) && (_MSC_VER >= 1600)# pragma execution_character_set("utf-8")#endifvoidrotateAndPaintRect(QPainter *painter, const QRectF &rect, int angle,bool isRound = false,int rx = 0,int ry = 0){qreal cx = 0;qreal cy = 0;cx = rect.center().x();cy = rect.center().y();painter->save();painter->translate(cx ,cy);painter->rotate(angle);QPointF drawOffset = rect.topLeft() - QPointF(cx,cy);painter->drawRect(drawOffset.x(), drawOffset.y(), rect.width(), rect.height());painter->restore();}voidDrawText(QPainter &painter,const QRectF &rect,QString str,double angle,int size,QString fontFamily,int textAlignment){QRectF rotatedRect(-rect.width()/2, -rect.height()/2, rect.width(), rect.height());qreal cx = rect.x() + rect.width() / 2;qreal cy = rect.y() + rect.height() / 2;QFont font = QFont(fontFamily, size);painter.setFont(font);painter.save();painter.translate(cx, cy);painter.scale(1, -1);painter.rotate(-angle);//旋转角度painter.drawText(rotatedRect,textAlignment,str);//恢复上面保存的状态painter.restore();}voidDrawImage(QPainter &painter, QImage &image, const QRectF &rect,double angle){QRectF rotatedRect(-rect.width()/2, -rect.height()/2, rect.width(), rect.height());painter.drawImage(rotatedRect, image);}
四、源码开源
本期源码开放,有需要的朋友可评论区回复“需要源码”,如果觉得这个对你有帮助麻烦大家关注点赞收藏~博客更新的动力,感谢大家~如果有定制化需要,也可直接私信~视频后期会放在这里或某站,同名“Q态王”可搜索。大家如果有什么新的控件灵感,也可以评论区交流

五、往期精选文章推荐

1、QT自定义控件之电气接线图(源码开源)
2、QT自定义控件之热换站系统(源码开源)
3、QT自定义控件之化工配置流程示意(源码开源)
4、QT自定义控件之暖通系统(作品展示)
5、QT自定义控件之智慧农田操作系统(作品展示)
6、QT自定义控件之多发酵罐并联工艺(源码开源)
7、QT自定义控件之乙烯裂解工艺监控系统(源码开源)
8、QT自定义控件之压缩机监控系统(源码开源)
9、QT自定义控件之水泥厂组态(源码开源)
10、QT自定义控件之储能电站(源码开源)

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料