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文件传输助手在…

机器之心:自动化与机器人技术详解

目录 引言 自动化与机器人技术的定义 发展历程 深化应用 工业领域 医疗领域 农业领域 服务领域 其他领域 面临的挑战与未来展望 一、成本问题 二、技术瓶颈 三、安全性和伦理问题 四、就业问题 未来趋势 一、智能化和自主化&#xff1a;机器人技术的核心驱动力…

tmux 命令

这篇是另一篇内容的前置知识。因为项目部署测试需要&#xff0c;向公司申请了一个虚拟机做服务器用。以下是回溯的命令&#xff0c;多了解了解&#xff0c;拓宽知识面吧。PS&#xff1a;本人小白一个&#xff0c;知识浅显&#xff0c;勿喷。 tmux 常用快捷键 tmux 提供了一系…

【C语言】常见的数据排序算法

目录 一、概述 二、常见的排序算法 2.1 冒泡排序 2.1.1 定义 2.1.2 C语言实现 2.2 快速排序 2.2.1 定义 2.2.2 C语言实现 2.3 插入排序 2.3.1 定义 2.3.2 C语言实现 2.4 希尔排序 2.4.1 定义 2.4.2 C语言实现 2.5 归并排序 2.5.1 定义 2.5.2 C语言实现 2.6 基…

【@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.可以轻松满足锂电池及中低压的应用需…

Python中的爬虫实战:猫眼电影爬虫

随着互联网技术的快速发展&#xff0c;网络上的信息量越来越庞大。猫眼电影作为国内领先的电影数据平台&#xff0c;为用户提供了全面的电影信息服务。本文将介绍如何利用python编写简单的猫眼电影爬虫&#xff0c;获取电影相关数据。 爬虫概述 爬虫&#xff0c;即网络爬虫&a…

x264 编码器 common.h 文件中结构体详细介绍

x264_slice_header_t 定义:typedef struct {x264_sps_t *sps;x264_pps_t *pps;int i_type;int i_first_mb;int i_last_mb;int i_pps_id;int i_frame_num

嵌入式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;每个人都住在共享建筑中独立且隔离的单元中。…

Java 商城后台管理系统

### 构建一个健壮的商城后台管理系统 使用Java Spring Boot框架和MySQL数据库&#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;向西湖…

throw和catch关键字的作用。

在C中&#xff0c;throw和catch是异常处理机制的关键字&#xff0c;它们共同工作以处理在程序执行过程中发生的异常情况。 throw 关键字 throw关键字用于抛出一个异常。当程序遇到无法处理的错误时&#xff0c;它会使用throw语句抛出一个异常。这通常是因为遇到了某些无法恢复…

使用Vue 2 + Element UI搭建后台管理系统框架实战教程

后台管理系统作为企业内部的核心业务平台&#xff0c;其界面的易用性和功能性至关重要。Vue 2作为一个成熟的前端框架&#xff0c;以其轻量级和高效著称&#xff0c;而Element UI则是一套专为桌面端设计的Vue 2组件库&#xff0c;它提供了丰富的UI元素和组件&#xff0c;大大简…

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

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