当前位置: 首页 > news >正文

Qt+C++动力监控动画仿真SCADA上位机

 程序示例精选

Qt+C++动力监控动画仿真SCADA上位机

如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对<<Qt+C++动力监控动画仿真SCADA上位机>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件

二、使用步骤

        1. 引入库

        2. 代码实现

        3. 运行结果

三、在线协助

一、所需工具软件

1. VS, Qt

2. C++

二、使用步骤

1.引入库

#include "MainWindow.h"#include<iostream>
#include <QThread>#include <thread>
#include <chrono>
#include <QObject>
#include <QThread>
#include <QDebug>
#include <QFile>
#include <QTimer>
#include <QMutex>
#include <QWaitCondition>
#include<opencv2/opencv.hpp>
#include <QDebug>
#include <QBitmap>
#include <QPainter>#include<QImage>
#include<QPixmap>
#include<QTransform>
#include<QPropertyAnimation>
#include<QGraphicsPixmapItem>
#include<QGraphicsScene>
#include <QtConcurrent/QtConcurrent>

2. 代码实现

代码如下:

void MainWindow::lightStrip1()
{
# if 1int imageCount = 11;int imageSpacing = 5; // 图片间距,-85qDebug() << "lightStrip2";QLabel* labelName = ui.label_4;int labelWidth = labelName->width();int labelHeight = labelName->height();qDebug() << "labelWidth: " << labelWidth;qDebug() << "labelHeight: " << labelHeight;qDebug() << "";labelName->clear();// 创建画布,与label_3一样大小QPixmap canvas(labelName->size());canvas.fill(Qt::transparent);// 创建画家并将画布设置为绘制目标QPainter painter(&canvas);// 计算每个加载的图片y坐标int y = yPos1;// 计算每个图片的总高度(包括间距)//int totalHeight = imageCount * (labelName->height() + imageSpacing) - imageSpacing - 80;//  int totalHeight = 100;int totalHeight = labelName->height();qDebug() << "totalHeight: " << totalHeight;// 同时绘制多个图片for (int i = 0; i < imageCount; i++) {// 加载当前图片QString imagePath = QString("./imgLightStrip/%1.png").arg(i + 1);QPixmap image(imagePath);// 定义新的尺寸int newWidth = 30;  // 替换为所需的宽度int newHeight = 100;  // 替换为所需的高度// 调整图片尺寸QPixmap resizedImage = image.scaled(newWidth, newHeight);int imageWidth = resizedImage.width();int imageHeight = resizedImage.height();qDebug() << "imageWidth: " << imageWidth;qDebug() << "imageHeight: " << imageHeight;qDebug() << "";int imageWidthT = labelName->width() * 0.3; //用label宽度的0.3比例作为图片宽度int imageHeightT = imageHeight * (labelName->width() * 0.3) / imageWidth;qDebug() << "imageWidthT: " << imageWidthT;qDebug() << "imageHeightT: " << imageHeightT;qDebug() << "";// 调整图片尺寸以适应label_3的宽度QPixmap scaledImage = resizedImage.scaledToWidth(labelName->width() * 0.3);// 计算水平居中的x坐标int x = (labelName->width() - scaledImage.width()) / 2;// 更新y坐标,实现图片向下流动的效果//y += totalHeight + 5; // 5是每个图片之间的间隔//int y = yPos + i * (labelName->height() + imageSpacing);int y = yPos1 + i * (imageHeightT + imageSpacing);if (y >= labelName->height()) { // 图片完全超出上方可视区域时,重新调整y坐标y -= totalHeight;}// 将图片绘制到画布上painter.drawPixmap(x, y, scaledImage);// 如果图片完全超出下方可视区域时,重新调整y坐标//if (y >= labelHeight + imageHeightT + 5) {//    y = yPos;//}}#endif
}
class WorkerThread3 : public QThread {Q_OBJECT
public:void run() override {QTimer timer3;connect(&timer3, &QTimer::timeout, this, &WorkerThread3::lightStrip3);timer3.start(200); // 设置定时器间隔,单位为毫秒exec();}~WorkerThread3() {quit();  // 请求线程退出wait();  // 等待线程完成}signals:void lightStrip3();
};

3. 运行结果

动画演示

 

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作

当前文章连接:Python+Qt桌面端与网页端人工客服沟通工具_alicema1111的博客-CSDN博客

博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客

博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客

                         Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客

个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主

博主所有文章点这里alicema1111的博客_CSDN博客-Python,C++,网页领域博主

相关文章:

Qt+C++动力监控动画仿真SCADA上位机

程序示例精选 QtC动力监控动画仿真SCADA上位机 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC动力监控动画仿真SCADA上位机>>编写代码&#xff0c;代码整洁&#xff0c;规则…...

Flask 单元测试

如果一个软件项目没有经过测试&#xff0c;就像做的菜里没加盐一样。Flask 作为一个 Web 软件项目&#xff0c;如何做单元测试呢&#xff0c;今天我们来了解下&#xff0c;基于 unittest 的 Flask 项目的单元测试。 什么是单元测试 单元测试是软件测试的一种类型。顾名思义&a…...

前端面试:【前端工程化】CommonJS 与 ES6 模块

嗨&#xff0c;亲爱的前端开发者&#xff01;在现代Web开发中&#xff0c;模块化是构建可维护和可扩展应用程序的关键。本文将深入探讨两种主要的JavaScript模块系统&#xff1a;CommonJS 和 ES6 模块&#xff0c;以帮助你了解它们的工作原理、用法以及如何选择合适的模块系统。…...

keepalived双机热备,keepalived+lvs(DR)

本节主要学习了keepalivedlvs的作用和配置方法主要配置调度器和web节点&#xff0c;还有keepalived的双击热备&#xff0c;主要内容有概述&#xff0c;安装&#xff0c;功能模块&#xff0c;配置双击热备&#xff0c;验证方法&#xff0c;双击热备的脑裂现象和VIP无法通信。 目…...

unity-ShaderGraph全节点

1.Artistic美术 Adjustment调整 Channel Mixer 混合颜色通道 Contrast 设置对比度 Hue 设置色调 range需要选normalized Invert Colors 反转颜色 Replace Color 设置两个颜色通道互换&#xff0c;可调参数 Saturation 设置饱和度 White Balance 白平衡&#xff08;调冷暖色调&a…...

C++入门:内联函数,auto,范围for循环,nullptr

目录 1.内联函数 1.1 概念 1.2 特性 1.3 内联函数与宏的区别 2.auto关键字(C11) 2.1 auto简介 2.2 auto的使用细则 2.3 auto不能推导的场景 3.基于范围的for循环(C11) 3.1 范围for的语法 3.2 范围for的使用方法 4.指针空值nullptr(C11) 4.1 C98中的指针空值 1.内联…...

五、多表查询-1.多表关系介绍

一、概述 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系&#xff0c;基本上分为三种&#xff1a; 一对多&a…...

Linux:编写编译脚本Makefile文件

一、生成可执行文件 1、一个源文件编译 本例子主要区别.c及.cpp文件及编译该文件时使用的编译链。 1).c文件 // testadd.c #include <stdio.h> int main() {int a 1;int b 2;int sum a b;printf("sum %d\n", sum);return 0; }// Makefie GXX g CC gcc…...

深入浅出Pytorch函数——torch.nn.init.calculate_gain

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

【PHP】PHP入门指南:从基础到进阶

PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的服务器端脚本语言&#xff0c;尤其在Web开发领域有着重要的地位。本文旨在为初学者提供一份详尽的PHP入门指南&#xff0c;帮助您了解PHP的基础知识和语法&#xff0c;掌握基本的编程技巧&#xff0c;并熟悉…...

【100天精通python】Day45:python网络爬虫开发_ Scrapy 爬虫框架

目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件 5 使用管道Pielines 1 Scrapy 的简介 Scrapy 是一个用于爬取网站数据并进行数据提取的开源网络爬虫框架。它使用 Python 编程语言编写&#xff0c;并提供了一套强大的工具和库&#xff0…...

怎么写出更好的高质量内容输出

为了更好地输出高质量的内容&#xff0c;不仅仅需要了解写作的基本原则&#xff0c;还需要深入挖掘目标读者的需求、持续的自我提升以及对信息的严格筛选。以下是一些建议&#xff0c;帮助你更好地输出高质量的内容&#xff1a; 1.充分了解你的受众 调查和了解你的目标读者&am…...

HJ31 单词倒排 题解

题目描述&#xff1a;单词倒排_牛客题霸_牛客网 (nowcoder.com) 对字符串中的所有单词进行倒排。 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单词间隔符以一个空格表示&#xff1b;如果原字符…...

LeetCode42.接雨水

这道题呢可以按列来累加&#xff0c;就是先算第1列的水的高度然后再加上第2列水的高度……一直加到最后就是能加的水的高度&#xff0c;我想到了这里然后就想第i列的水其实就是第i-1列和i1列中最小的高度减去第i列的高度&#xff0c;但是其实并不是&#xff0c;比如示例中的第5…...

优化时间流:区间调度问题的探索与解决

在浩如烟海的信息时代&#xff0c;时间的有效管理成为了一门不可或缺的艺术。无论是生活中的琐事&#xff0c;还是工作中的任务&#xff0c;时间都在无声地流逝&#xff0c;挑战着我们的智慧。正如时间在日常生活中具有的宝贵价值一样&#xff0c;在计算机科学领域&#xff0c;…...

【Python】强化学习:原理与Python实战

搞懂大模型的智能基因&#xff0c;RLHF系统设计关键问答 RLHF&#xff08;Reinforcement Learning with Human Feedback&#xff0c;人类反馈强化学习&#xff09;虽是热门概念&#xff0c;并非包治百病的万用仙丹。本问答探讨RLHF的适用范围、优缺点和可能遇到的问题&#xff…...

设计模式——合成复用原则

文章目录 合成复用原则设计原则核心思想合成案例聚合案例继承案例优缺点 合成复用原则 原则是尽量使用合成/聚合的方式&#xff0c;而不是使用继承 设计原则核心思想 找出应用中可能需要变化之处&#xff0c;把它们独立出来&#xff0c;不要和那些不需要变化的代码混在一起。…...

基于OpenCV实战(基础知识一)

目录 简介 1.计算机眼中的图像 2.图片的读取、显示与保存 3.视频的读取与显示 简介 OpenCV是一个流行的开源计算机视觉库&#xff0c;由英特尔公司发起发展。它提供了超过2500个优化算法和许多工具包&#xff0c;可用于灰度、彩色、深度、基于特征和运动跟踪等的图像处理和…...

如何高效的接入第三方接口

作为程序员的我们,经常会接到领导的安排,接入某某的接口,方面我们如何如何, 例如:领导在1号时给作为员工的你说,最近系统需要增加一个新的支付方式,一会和对方技术组建一个群,有什么问题,可以直接在群里说,最近还说,尽快接入,客户等着用,让你在5号前,完成接入工…...

docker pip下载依赖超时或失败问题解决

Docker容器使用pip安装Python库时超时&#xff0c;可能是由于多种原因。以下是一些建议和解决方法&#xff1a; 使用国内镜像源: 如果你位于中国&#xff0c;可以尝试更换到国内的镜像源。例如&#xff0c;可以使用阿里云、腾讯云、清华大学提供的镜像。 你可以在Dockerfile中添…...

python并发编程

一、程序提速的方法 二、python对并发编程的支持 多线程&#xff1a;threading&#xff0c;利用CPU和IO可以同时执行的原理&#xff0c;让CPU不会干巴巴等待IO完成&#xff1b;多进程&#xff1a;multiprocess&#xff0c;利用多核CPU的能力&#xff0c;真正的并行执行任务&am…...

【面试题】:前端怎么实现权限设计及遇到的bug

一.权限的概念 前端权限分为页面权限、按钮权限、API权限。 二.页面权限的实现过程 ①用户登录进去调用获取用户信息接口&#xff0c;后端会给我们返回一个权限标识符 ②在获取到数据之后,我们就要判断用户能访问到哪些页面,我们可以在vuex中permission模块中的action…...

Vue 2 插槽

可以先阅读组件基础-简单了解通过插槽分发内容。 一、插槽定义 插槽将子组件标签间的内容分发到子组件模板的<slot>标签位置。 如果没有<slot>标签&#xff0c;那么该内容将被丢弃。 二、编译作用域 内容在哪个作用域编译&#xff0c;就可以访问哪个作用域的数据…...

Spring 容器启动耗时统计

为了了解 Spring 为什么会启动那么久&#xff0c;于是看了看怎么统计一下加载 Bean 的耗时。 极简版 几行代码搞定。 import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor;import java.util.HashMap; imp…...

1. 优化算法学习

参考文献 1609&#xff1a;An overview of gradient descent optimization algorithms 从 SGD 到 Adam —— 深度学习优化算法概览(一) - 知乎 机器学习札记 - 知乎...

再获荣誉丨通付盾WAAP解决方案获“金鼎奖”优秀金融科技解决方案

今年四月&#xff0c;2023中国国际金融展在首钢会展中心成功落下帷幕。中国国际金融展作为金融开放创新成果的展示、交流、传播平台&#xff0c;历经多年发展,已成为展示中国金融发展成就、宣传金融改革成果、促进金融产业创新和推动金融信息化发展的有效平台。 “金鼎奖”评选…...

【腾讯云 TDSQL-C Serverless 产品测评】“橡皮筋“一样的数据库『MySQL高压篇』

【腾讯云 TDSQL-C Serverless 产品测评】"橡皮筋"一样的数据库 活动介绍服务一览何为TDSQL &#xff1f;Serverless 似曾相识&#xff1f; 降本增效&#xff0c;不再口号&#xff1f;动手环节 --- "压力"山大实验前瞻稍作简介资源扩缩范围&#xff08;CCU&…...

python http文件上传

server端代码 import os import cgi from http.server import SimpleHTTPRequestHandler, HTTPServer# 服务器地址和端口 host = 0.0.0.0 port = 8080# 处理文件上传的请求 class FileUploadHandler(SimpleHTTPRequestHandler):def do_POST(self):# 解析多部分表单数据form = …...

Android学习之路(9) Intent

Intent 是一个消息传递对象&#xff0c;您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信&#xff0c;但其基本用例主要包括以下三个&#xff1a; 启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()&…...

vue项目配置git提交规范

vue项目配置git提交规范 一、背景介绍二、husky、lint-staged、commitlint/cli1.husky2.lint-staged3.commitlint/cli 三、具体使用1.安装依赖2.运行初始化脚本3.在package.json中配置lint-staged4.根目录新增 commitlint.config.js 4.提交测试1.提示信息格式错误时2.eslint校验…...

wordpress 緩慢/互联网舆情信息

摘要&#xff1a;微信搜索【三桥君】 一、问题 当使用Axure RP软件将原型文件生成html时&#xff0c;默认预览html文件会出现这种页面情况。 说明当前浏览器缺少插件。 中文翻译&#xff1a; 二、解决办法 &#xff08;一&#xff09;第一种 1、打开生成的html文件夹&am…...

江苏广兴建设集团网站/厦门网络营销推广

--- **python总结** 一、python中数有四种类型&#xff1a;整数、长整数、浮点数和复数 1.整数 2.长整数 3.浮点数 4.复数 二、字符串运算符 a 值为字符串 "Hello"&#xff0c;b 变量值为 "Python"&#xff1a; ****:>>>a b HelloPython **重复*…...

博彩网站自己做/seo俱乐部

转自&#xff1a;http://www.cnblogs.com/mengdd/p/4153773.html 查看、添加、提交、删除、找回&#xff0c;重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃…...

免费网站商城模板/郑州网站排名优化公司

1需求&#xff1a;请输出一个4行5列的星星(*)图案。 ***** ***** ***** ***** 2&#xff0c;注意事项&#xff1a; System.out.println("*");和System.out.print("*");的区别 外循环控制行数&#xff0c;内循环控制列数 class Demo1_ForFor {public…...

网站开发亿玛酷给力5/自动外链工具

作者&#xff1a;冰雪尘沙(公告声明&#xff1a;本博客中注明 [原创] 的文章&#xff0c;如要转载请注明出处&#xff0c;即作者『冰雪尘沙』和本博客网址。如有任何宝贵意见敬请留言或E-mail给我&#xff0c;我会虚心参考改进&#xff0c;谢谢&#xff01;) 心情、换季温差一年…...

杭州做网站公司/优化疫情二十条措施

在bootstrap中&#xff0c;我们可以使用不带任何class的跟来创建一个有序列表&#xff0c;但是如果加上list-group类&#xff0c;样式有了&#xff0c;但列表前面的数字却没了。Bootstrap给list-group-item应用了display:block; 所以显示不了序号&#xff0c;因此我们只要修改一…...