QT自定义控件之水泥厂组态(源码开源)

一、前言

这期作品其实最初的时候,有做过,不过当时做的时候,配图花了很长时间,手搓痕迹较重。在某站上曾经手搓上传过这个作品的出版,后期大家感兴趣可以去查看,这里不再重复述说了。然后现在有了智能小助手之后,这个工作效率就升上来了。至少在炫酷感方向上,我们的方向不再执着于美不美丽,漂不漂亮了,更多的只要做程序化的动作。

下面聊下本期的作品,本文基于一个真实跑在 Qt Widgets 里的水泥厂 DCS 组态画面,主要还是矢量绘制、流体动画、定时器调度这几件事。

这期的技术栈方向依然是我们的老演员:C++、QT、QPainter

二、作品展示

窗口本体就是一个 QMainWindow,右上角俩按钮:开始 / 暂停,中间整块是自绘的 QWidget。

在这期画面里你能看到:

  • 左上角五个原料仓:生料均化、熟料库、铁粉、粘土......每个仓带液位、温度标签;

  • 中间一排旋风预热器 + 烟囱 + 风管;

  • 左右两套水泥磨(风机+磨机);

  • 底部一个紫色大料仓;

  • 五条颜色不同的管线:(黄/绿/红/蓝/紫)在画面里持续流动,物料从料仓一路流到磨机再入库。

下面展示下具体的展示效果:

亮点分析:

亮点 1:自定义管线图元,实现多色管道流体流动动画

这期作品里的流动管道真是超级多,应该是目前所有作品之最,这里也能体现出来,应对复杂的流动管道方向(2D方向),在QT这边不再会存在太大的难度。这里完全使用 QPainter 路径绘制 QPainterPath 描述管道走向,用虚线 / 渐变线段模拟介质流动。

  • 每条管道对象保存路径坐标、管线颜色、流速、介质方向;

  • 使用 QTimer 定时偏移线段起点,实现流动推进;

  • 支持拐弯、分叉管道,自动处理拐角,不会出现线条断裂。

亮点2:料仓液位动态渲染,实时绑定测点数值

实时数据文本悬浮显示,压力、温度、流量测点数字刷新; 增加告警闪烁效果,测点越限时设备红闪报警,闪烁增加了部分,测点增了部分,有些留白处理,大家有需要可自行增加。

亮点3:支持画面缩放平移

工业组态界面经常需要放大局部工段查看细节。这边缩放不受影响。之前在项目中用QWidget原生控件,总会遇到缩放的问题,在这里使用QPainter完美的帮助我们解决了这个问题。使大家不再因为缩放而烦恼。

三、源码开放

本期源码开放,有需要的朋友可以去下面位置找我~

QT自定义控件之水泥厂组态(源码开源)

相关推荐
云水初1 小时前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
辛苦才能1 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
miller-tsunami2 小时前
STL简介&string相关知识点
开发语言·c++·string
半摆烂日常2 小时前
手机表单的左滑操作:触摸事件的处理细节
大数据·开发语言·人工智能·智能手机·https·c#
星夜离尘562 小时前
MATLAB滑动RMS如何接报警:窗口未满和缺样不能当成正常
开发语言·matlab
开开心心就好3 小时前
白天晚上自动调蓝光,护眼工具亮度可调
服务器·开发语言·算法·pdf·ocr·intellij-idea·idea
张张123y3 小时前
后端第十一课:RAG 落地实战(从 0 到 1 接上私有知识库,并设计一个好用的 RAG)
开发语言·人工智能·python·机器学习·fastapi·rag
梅梅绵绵冰3 小时前
JVM虚拟机
java·开发语言·jvm
Shaoshing3 小时前
消息顺序
java·开发语言