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.pswp.cn/diannao/39236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39236.shtml
英文地址,請注明出處:http://en.pswp.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;并提供具體的代碼示例。 確定目標網站 在開始編寫爬…