QChartView显示实时更新的温度曲线图(二)

文章目录

      • 参考图
      • 说明
      • 1. 项目结构
      • 2. TempChartView.pro
      • 3. main.cpp
      • 4. TemperatureSeries.qml
      • 5. main.qml
      • 详细说明

参考图

在这里插入图片描述

说明

  • Qt Charts 提供了一系列使用图表功能的简单方法。它使用Qt Graphics View Framework 图形视图框架,因此可以很容易集成到用户界面。可以使用Qt Charts作为QWidgets, QGraphicsWidget, 或者 QML类型。

  • 使用Qt Charts时:需要在.pro文件中添加 QT += charts

  • Qt Charts提供了如下图表类型:
    折线图和曲线图
    面积图和散点图
    柱状图
    饼状图
    箱形图
    蜡烛图
    极坐标图

1. 项目结构

TempChartView/
├── main.cpp
├── main.qml
├── qml.qrc
├── TemperatureSeries.qml
├── TempChartView.pro

2. TempChartView.pro

QT += charts qml quick# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cppRESOURCES += qml.qrc# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

3. main.cpp

#include <QtWidgets/QApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QtQuick/QQuickView>
#include <QtCore/QDir>
#include <QtQml/QQmlEngine>int main(int argc, char *argv[])
{QApplication app(argc, argv);QQmlApplicationEngine engine;engine.load(QUrl(QStringLiteral("qrc:/main.qml")));if (engine.rootObjects().isEmpty())return -1;return app.exec();}

4. TemperatureSeries.qml

实现样式和多条曲线:

import QtQuick 2.15
import QtCharts 2.15
import QtQuick.Controls 2.15ChartView {id: chartViewwidth: 800height: 600antialiasing: truetitle: "温度变化图"legend.visible: falseValueAxis {id: axisXmin: 0max: 100titleText: "时间/hh:mm:ss"}ValueAxis {id: axisYmin: 0max: 110titleText: "温度/℃"}LineSeries {id: tempSeries1name: "Temperature 1"useOpenGL: trueaxisX: axisXaxisY: axisYcolor: "red"}LineSeries {id: tempSeries2name: "Temperature 2"useOpenGL: trueaxisX: axisXaxisY: axisYcolor: "orange"}LineSeries {id: tempSeries3name: "Temperature 3"useOpenGL: trueaxisX: axisXaxisY: axisYcolor: "blue"}Timer {interval: 1000running: truerepeat: trueproperty double time: 0onTriggered: {time += 1var newTemp1 = 85 + (Math.sin(time / 10) * 5)var newTemp2 = 60 + (Math.sin(time / 10) * 5)var newTemp3 = 35 + (Math.sin(time / 10) * 5)tempSeries1.append(time, newTemp1)tempSeries2.append(time, newTemp2)tempSeries3.append(time, newTemp3)if (tempSeries1.count > 100) {tempSeries1.remove(0)tempSeries2.remove(0)tempSeries3.remove(0)axisX.min += 1axisX.max += 1}}}
}

5. main.qml

修改以适应新组件:

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtCharts 2.15ApplicationWindow {visible: truewidth: 800height: 600title: "Temperature Chart Example"TemperatureSeries {anchors.fill: parent}
}

详细说明

  • main.cpp: 初始化QML应用程序并加载主QML文件main.qml
  • TemperatureSeries.qml:
    • ChartView: 用于显示图表。
    • ValueAxis: 定义X轴和Y轴的范围和标签。
    • LineSeries: 用于显示多条温度数据线,每条线代表不同的温度曲线,并指定颜色。
    • Timer: 每秒生成三个随机温度值并添加到LineSeries中。如果数据点超过100个,则移除最早的数据点,并调整X轴范围,以实现实时更新效果。
  • main.qml: 定义应用程序窗口,并包含TemperatureSeries组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于小波分析的纹理和颜色反射对称性检测(MATLAB R2018A)

对称物体在自然图像和合成图像中普遍存在。作为对称物体最重要的全局特征之一&#xff0c;对称性检测长期以来都是计算机视觉领域的研究热点&#xff0c;并在图片的语义提取、图像语义理解以及情感识别等任务上具有广泛的应用。对称物体的检测技术&#xff0c;就是将图片中所蕴…

【前端】HTML+CSS复习记录【3】

文章目录 前言一、from&#xff08;表单&#xff09;二、style属性1、标签中直接定义&#xff08;内联样式&#xff09;2、定义在head中3、外部链接引用 四、 class 选择器系列文章目录 前言 长时间未使用HTML编程&#xff0c;前端知识感觉忘得差不多了。通过梳理知识点&#…

qq文件传输助手在哪里?详细图文教程告诉你(2024新版)

QQ作为一款功能强大的社交软件&#xff0c;不仅提供了聊天、语音、视频等多种通讯方式&#xff0c;还内置了文件传输助手这一实用工具。通过文件传输助手&#xff0c;用户可以在不同设备之间轻松传输文件&#xff0c;实现跨平台的便捷操作。 那么&#xff0c;qq文件传输助手在…

【@AutoWired和@Resource的区别】

AutoWired和Resource的区别 这两个我们在项目中&#xff0c;经常去使用。很少有人知道他们有什么区别。下面我们将从 来源依赖查找顺序支持的参数依赖注入的用法支持 这四个方面来说明他们俩个的区别 来源 Autowired: 这是Spring框架自带的注解&#xff0c;用于实现自动依…

绝区零 Mac 下载安装详细教程(MacOS IPA 砸壳包 playCover 完美运行)

绝区零 7.4 号开始公测&#xff0c;但刚刚就可以开始下载了&#xff0c;我也是第一时间就迫不及待的安装到了我的 Mac 电脑上&#xff0c;感兴趣的朋友可以跟我一起安装试试 我这里是通过 playCover 的形式在 Mac 上安装运行的&#xff0c;根据之前原神的经验所以这次还是同样…

惠海 H6912 升压恒流芯片IC 支持2.6-40V升12V24V36V48V60V100V 10A 摄影灯 太阳能灯 UV灯 杀菌灯

1.产品描述 H6912是一款外围电路简洁的宽调光比升压调光LED恒流驱动器&#xff0c;可适用于2.6-40V输入 电压范围的LED恒流照明领域。H6912可以实现高精度的恒流效果&#xff0c;输出电流恒流精度≤士3%&#xff0c;电压工作范围为2.6-40V.可以轻松满足锂电池及中低压的应用需…

嵌入式Linux系统编程 — 6.1 信号的基本概念

目录 1 信号的概念和作用 1.1 什么是信号 1.2 信号的目的 1.3 信号如何处理 2 信号的分类 2.1 可靠信号与不可靠信号 2.2 实时信号与非实时信号 3 常见信号与默认行为 3.1 信号本质上是 int 类型数字编号 3.2 常见信号 1 信号的概念和作用 1.1 什么是信号 信号是一…

艾体宝干货 | 解析Redis企业版的多租户技术

在多租户架构中&#xff0c;一个软件实例为多个不同的用户组&#xff08;或“租户”&#xff09;提供服务。每个租户的数据都被安全地隔离&#xff0c;确保它们对其他租户不可见且无法访问。可以将其想象为一栋公寓大楼&#xff0c;每个人都住在共享建筑中独立且隔离的单元中。…

大模型时代的基础架构,大模型算力中心建设指南重磅来袭!

什么是最畅销商品&#xff1f;什么是高毛利商品&#xff1f; 我们来看一个例子&#xff1a; 一件T恤使用成本为100元的原料&#xff0c;价格为140元。另一件T恤使用成本为80元的原料&#xff0c;但在样式、颜色、图案的设计上比较有特色&#xff0c;价格也为140元。 当这两件…

【JVM-04】线上CPU100%

【JVM-04】线上CPU100% 1. 如何排查2. 再举一个例子 1. 如何排查 ⼀般CPU100%疯狂GC&#xff0c;都是死循环的锅&#xff0c;那怎么排查呢&#xff1f;先进服务器&#xff0c;⽤top -c 命令找出当前进程的运⾏列表按⼀下 P 可以按照CPU使⽤率进⾏排序显示Java进程 PID 为 2609…

苏东坡传-读书笔记七

苏堤和西湖之与杭州&#xff0c;正如美女花容月貌上的双眸。我常想&#xff0c;倘若西湖之是空空的一片水——没有苏堤那秀美的修眉和虹彩般的仙岛&#xff0c;一画龙点睛增其神韵&#xff0c;那西湖该望之如何?几百年来的中国游客&#xff0c;春季到来之时&#xff0c;向西湖…

如何在Python中实现一个简单的爬虫程序

如何在Python中实现一个简单的爬虫程序 随着互联网的发展&#xff0c;数据已成为当今社会最宝贵的资源之一。而爬虫程序则成为了获取互联网数据的重要工具之一。本文将介绍如何在Python中实现一个简单的爬虫程序&#xff0c;并提供具体的代码示例。 确定目标网站 在开始编写爬…

【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;urllib.error.HTTPError: HTTP Error 403: Forbidden 一、分析问题背景 在使用Python的urllib库中的urlopen或urlretrieve函数下载文件时&#xff0c;有时会遇到…

全国30省份各省资本存量数据固定资本形成总额永续盘存法(2000-2023年)

各省资本存量数据通过永续盘存法进行了详细的计算&#xff0c;这一方法覆盖了中国30个省份&#xff08;不包括西藏&#xff09;&#xff0c;提供从2000年起直至2023的资本存量数据集。包括原始数据、测算过程、最终的资本存量结果。 以2000年作为基期年份&#xff0c;依据…

电路笔记(PCB):电流容量(IPC-2221和IPC-2152)+阻抗匹配

电流容量 IPC-2221经验公式 I K T b A c IK\times T^{b}\times A^{c} IKTbAc 这个公式用于估计PCB&#xff08;Printed Circuit Board&#xff0c;印刷电路板&#xff09;导线上的电流&#xff08;I&#xff09;&#xff0c;其中T和A分别表示温度&#xff08;Temperature&a…

flex布局中子元素内容超出时,子元素本身出现滚动条实现方法

flex布局中子元素宽度平均分配&#xff0c;并且当子元素内容超出时&#xff0c;子元素本身出现滚动条实现方法&#xff1a; 将父元素设置为display: flex&#xff0c;以启用Flexbox布局。将每个子元素的flex属性设置为1&#xff0c;以使其宽度平均分配。设置子元素的overflow属…

ComfyUI流程图、文生图、图生图步骤教学!

前言 leetcode , 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 …

大厂都在“抢滩”欧洲杯,你该如何蹭上热度?

2024欧洲杯战至第三轮小组赛&#xff0c;德国、瑞士、西班牙、意大利已出线角逐1/8决赛。 云略统计&#xff0c;欧洲杯开战至今&#xff0c;抖音上“欧洲杯”相关话题高达1000个&#xff0c;其中#谁是欧洲杯预言家 话题播放量高达7.57亿&#xff0c;C罗、姆巴佩等国际巨星更是频…

DB-100撕裂开关 JOSEF约瑟 合金接线端子,轻松接线

一、产品概述 型号&#xff1a;DB-100 主要用途&#xff1a;DB-100撕裂开关主要用于监测皮带输送机在运行过程中是否发生纵向撕裂&#xff0c;一旦发现撕裂情况&#xff0c;立即触发报警或停机&#xff0c;以保护设备和生产线的安全运行。 二、技术特点 检测原理&#xff1a;…

Snipaste截图工具的下载

Snipaste是一款简单而强大的桌面截图工具&#xff0c;它不仅支持快速截图&#xff0c;还提供了丰富的编辑和贴图功能&#xff0c;极大地提升了用户的工作效率。 网址&#xff1a;Snipaste 下载 1.进入文件夹解压缩 2.解压缩后打开双击运行 3.快捷键F1截图 F3截图固定桌面 …