新闻详情

新闻详情

首页 / 资讯中心 / 详情

QT自定义控件之储能电站(源码开源)

发布时间:2026/9/27 12:01:50来源:尧图网络
QT自定义控件之储能电站(源码开源)
一、作品展示先进行咱们这期的作品亮相画面主体是储能电站一次主接线图35kV 母线向下分出 6 组储能支路每组包含变压器、PCS 变流器、电池簇。每个支路实时展示 Uab、I、P、Q 电气量下方电池色块用填充高度代表 SOC同时标注电压电流测点。右上角提供上电 / 断电按钮点击后会改变开关状态、刷新线路颜色、更新测点数值。主要技术栈依然是C、QT、Qpainter开发的核心亮点1、带电回路动态着色直观区分运行状态根据全站带电、支路开关分合状态自动切换线路、元件颜色电池簇色块填充高度跟随 SOC 数值实时变化一眼就能看清各组电池剩余容量贴合电力监控的视觉习惯。2、完整的测点信息可视化展示每条支路绑定一组电力测点线电压 Uab、电流 I、有功 P、无功 Q电池簇下方同步展示 SOC、电压、电流数据。文本采用 QRect 对齐绘制排版整齐稳定不会出现文字错位。3、深色工业监控 UI 风格采用工控 SCADA 经典深色底色降低长时间盯屏视觉疲劳配色符合电力监控系统审美。4、带电线路流动箭头动画模拟电能流向提升组态画面真实感单纯用静态颜色区分带电回路只能表达 “有电 / 无电” 状态增加流动箭头动画之后可以直观展示电能传输方向更加贴合 SCADA 监控的现场观感。同时当实现通电状态时流动线替代的动画感开始工作断开回路时流动感也会同时消失增加真实效果感。5、轻量交互控制主窗口提供上电、断电按钮一键切换全站运行状态联动刷新所有开关、线路、电池单元的显示效果可模拟电站启停仿真。二、实现流程1、主窗口结构MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui-setupUi(this); for (int i 12; i 34; i 2) { ui-widget-Set_DisplayEvent_IsShow(i,1); } m_Timer new QTimer(this); connect(m_Timer,SIGNAL(timeout()),this,SLOT(SlotTimer())); } MainWindow::~MainWindow() { delete ui; }2、核心代码本期的核心代码主要在CustomWidget.cpp中部分代码展示#if defined(_MSC_VER) (_MSC_VER 1600) # pragma execution_character_set(utf-8) #endif void rotateAndPaintRect(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(); } void DrawText(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(); } void DrawImage(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); }三、源码开放本期源码开放有需要的朋友可以去下面位置找我~QT自定义控件之储能电站源码开源
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Claude Code 给 AI 编程装上 ADHD,性能真的翻倍了?TaoToken 配置实测 2026/9/27 12:53:38

Claude Code 给 AI 编程装上 ADHD,性能真的翻倍了?TaoToken 配置实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
以太网温湿度变送器双协议实战:SNMP与TCP长连接配置调试全攻略 2026/9/27 12:53:38

以太网温湿度变送器双协议实战:SNMP与TCP长连接配置调试全攻略

1. 从一次现场调试说起:为什么双协议是刚需去年冬天,我接手了一个机房环境监控的改造项目。现场有十二台以太网温湿度变送器,分布在三个楼层,甲方要求把数据同时接入两套系统:一套是运维团队用了七八年的老网管平台&am…

阅读更多 →
从运动感知到稳定上报:动态环境监测系统的设计与实现 2026/9/27 12:53:38

从运动感知到稳定上报:动态环境监测系统的设计与实现

前阵子给一套工业物资运输监测系统做原型,设备要求很简单:能在颠簸、跌落、倾斜这些动态环境里把异常姿态和冲击事件通过无线链路及时上报。按传统思路就是MCU定时读传感器、再开无线发射,可实际上功耗高、误报多、抗干扰还差。后来我换成R7K…

阅读更多 →
网站个性化制作避坑指南:从设计原则到前端落地的实战手册 2026/9/27 12:53:32

网站个性化制作避坑指南:从设计原则到前端落地的实战手册

网站个性化制作避坑指南:从设计原则到前端落地的实战手册 找建站公司报价三万起,交付的却是换皮模板?别急着签字,先看懂这份 网站个性化制作 避坑指南。 很多老板以为定制开发就是换个颜色,其实真正的个性化是 设计系统 的差异化。不懂 设计规范…

阅读更多 →
以太网温湿度变送器双协议调试:SNMP与TCP长连接并行实战 2026/9/27 12:53:32

以太网温湿度变送器双协议调试:SNMP与TCP长连接并行实战

1. 项目缘起与整体设计思路1.1 为什么选以太网温湿度变送器这个方向机房、药厂洁净车间、档案馆、温室大棚、锂电池老化房,这些场景有一个共同点:温湿度数据必须连续记录,而且一旦超标要能立刻被上层系统感知。传统的做法是RS485总线拉一串温…

阅读更多 →
【OpenClaw系列教程】第七篇:OpenClaw 实战示例 - 用 TaoToken 统一 Key 打通 AI Agent 能力 2026/9/27 12:53:31

【OpenClaw系列教程】第七篇:OpenClaw 实战示例 - 用 TaoToken 统一 Key 打通 AI Agent 能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉