在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Qt(C++)使用QChart靜態顯示3個設備的溫度變化曲線

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-05-29 14:47 ? 次閱讀

一、QChart介紹

QChart模塊是Qt Charts庫的基礎,提供了用于創建和顯示各種類型圖表的類和接口。Qt Charts庫是一個功能豐富、易于使用的數據可視化工具庫,可以幫助開發者在應用程序中添加漂亮而又交互性強的圖表。

QChart模塊主要包括以下類:

  1. QChart:表示一個基本的圖表容器,它可以包含一個或多個QAbstractSeries對象。開發者可以設置圖表的標題、動畫效果、背景、邊框以及坐標軸等屬性,并添加或移除序列數據。
  2. QAbstractSeries:表示一個序列數據,它是QLineSeries、QScatterSeries等具體序列類型的基類,開發者可以通過繼承該類來創建自定義序列類型。
  3. QLineSeries:表示一條折線序列,它可以用于繪制單一或多條折線曲線圖。
  4. QScatterSeries:表示一個散點圖序列,它可以用于繪制數據點之間的離散分布情況。
  5. QBarSeries:表示一個條形圖序列,它可以用于展示分類數據在不同類別中的分布情況。
  6. QPercentBarSeries:表示一個百分比條形圖序列,它可以用于展示分類數據在不同類別中的占比情況。
  7. QPieSeries:表示一個餅圖序列,它可以用于展示不同數據之間的占比關系。
  8. QChartView:表示QChart對象的視圖類,開發者可以將QChart對象設置為QChartView的子對象,并添加到窗口中以便顯示。

通過使用QChart模塊,開發者可以輕松地創建并自定義各種類型的圖表,例如折線曲線圖、散點圖、條形圖、餅圖等,并以交互性強的方式來展示數據,為應用程序增加了更多的可視化效果。

下面是通過折線圖顯示3個設備的溫度變化趨勢效果:

image-20230529133220218

image-20230529132333629

二、實現代碼(1)

以下是使用QChart顯示3個折線圖,表示3個設備的溫度曲線的實現代碼: (溫度數據是模擬的數據)

#include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 ?
 QT_CHARTS_USE_NAMESPACE
 ?
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
 ?
 public:
     MainWindow(QWidget *parent = nullptr)
         : QMainWindow(parent)
     {
         // 數據初始化
         for (int i = 0; i < 30; i++) {
             m_data[0].append(QPointF(i, QRandomGenerator::global()->bounded(10, 30)));
             m_data[1].append(QPointF(i, QRandomGenerator::global()->bounded(20, 40)));
             m_data[2].append(QPointF(i, QRandomGenerator::global()->bounded(30, 50)));
         }
 ?
         // 創建線性圖對象
         QChart* chart = new QChart();
         chart->setTitle("Temperature Data");
         chart->setAnimationOptions(QChart::SeriesAnimations);
 ?
         // 創建線序列對象
         QLineSeries* series1 = new QLineSeries(chart);
         QLineSeries* series2 = new QLineSeries(chart);
         QLineSeries* series3 = new QLineSeries(chart);
 ?
         // 設置線顏色、名字和寬度
         series1->setColor(Qt::red);
         series1->setName("Device1");
         series1->setPen(QPen(Qt::red, 2));
 ?
         series2->setColor(Qt::green);
         series2->setName("Device2");
         series2->setPen(QPen(Qt::green, 2));
 ?
         series3->setColor(Qt::blue);
         series3->setName("Device3");
         series3->setPen(QPen(Qt::blue, 2));
 ?
         // 添加數據到線序列對象
         for (const QPointF& point : m_data[0]) {
             *series1 << point;
         }
         for (const QPointF& point : m_data[1]) {
             *series2 << point;
         }
         for (const QPointF& point : m_data[2]) {
             *series3 << point;
         }
 ?
         // 添加線序列對象到圖表
         chart->addSeries(series1);
         chart->addSeries(series2);
         chart->addSeries(series3);
 ?
         // 設置橫軸和縱軸標簽
         QValueAxis* axisX = new QValueAxis();
         axisX->setTitleText("Time (s)");
         axisX->setRange(0, 29);
 ?
         QValueAxis* axisY = new QValueAxis();
         axisY->setTitleText("Temperature (℃)");
         axisY->setRange(0, 60);
 ?
         // 添加橫軸和縱軸到圖表
         chart->setAxisX(axisX);
         chart->setAxisY(axisY);
 ?
         // 創建圖表視圖
         QChartView* chartView = new QChartView(chart);
         chartView->setRenderHint(QPainter::Antialiasing);
         setCentralWidget(chartView);
     }
 ?
 private:
     // 存儲溫度數據的二維數組
     QVector

以上是一個完整的Qt窗口程序,可以直接運行并顯示3個設備的溫度曲線。

在程序中,使用QChart對象作為圖表容器,創建了3個QLineSeries對象用于展示3個設備的溫度數據,并將它們添加到QChart對象中。自定義了橫軸和縱軸標簽及范圍,并將它們添加到QChart對象中。最后,創建了一個QChartView對象,并將QChart對象設置為其子對象,以展示整個溫度曲線圖表。

三、實現代碼(2)

如果自己需要設計UI界面,添加QChart顯示折線圖。下面演示一下過程。

【1】添加模塊

image-20230529133646300

【2】設計UI

image-20230529133814592

【3】設計代碼-頭文件

#ifndef WIDGET_H
 #define WIDGET_H
 ?
 #include 
 ?
 // 包含line chart需要的頭文件
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 ?
 // 引用命名空間
 QT_CHARTS_USE_NAMESPACE
 ?
 QT_BEGIN_NAMESPACE
 namespace Ui { class Widget; }
 QT_END_NAMESPACE
 ?
 class Widget : public QWidget
 {
     Q_OBJECT
 ?
 public:
     Widget(QWidget *parent = nullptr);
     ~Widget();
 ?
 private:
     Ui::Widget *ui;
 ?
      QChart *chart;
      QChartView *chartView;
 };
 #endif // WIDGET_H
 ?

【3】設計代碼-源文件

#include "widget.h"
 #include "ui_widget.h"
 ?
 Widget::Widget(QWidget *parent)
     : QWidget(parent)
     , ui(new Ui::Widget)
 {
     ui->setupUi(this);
 ?
     // 存儲溫度數據的二維數組
     QVector
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5085

    文章

    19138

    瀏覽量

    305779
  • C++
    C++
    +關注

    關注

    22

    文章

    2110

    瀏覽量

    73688
  • Qt
    Qt
    +關注

    關注

    1

    文章

    306

    瀏覽量

    37948
  • 靜態顯示
    +關注

    關注

    0

    文章

    19

    瀏覽量

    6024
收藏 人收藏

    評論

    相關推薦

    編寫第一QT程序

    學習一種編程語言或編程環境,通常會先編寫一“Hello World”程序。我們也用 Qt Creator 編寫一“Hello World”程序,以初步了解 Qt Creator 設
    發表于 11-21 10:41 ?1030次閱讀

    Qt(C++)使用QChart動態顯示3設備溫度變化曲線

    QtQChart是一用于繪制圖表和可視化數據的類。提供了一靈活的、可擴展的、跨平臺的圖表繪制解決方案,可以用于各種應用程序,如數據分析、科學計算、金融交易等。
    的頭像 發表于 06-02 09:06 ?1633次閱讀
    <b class='flag-5'>Qt</b>(<b class='flag-5'>C++</b>)使用<b class='flag-5'>QChart</b>動態<b class='flag-5'>顯示</b><b class='flag-5'>3</b><b class='flag-5'>個</b><b class='flag-5'>設備</b>的<b class='flag-5'>溫度</b><b class='flag-5'>變化</b><b class='flag-5'>曲線</b>

    Qt Creator如何創建純C++項目?

    Qt Creator如何創建純C++項目
    發表于 11-09 08:54

    溫度變化靜態工作點的影響相關資料推薦

    晶體管是一溫度敏感器件,當溫度變化時,其特性參數(β、ICBO、UBE)的變化比較顯著,實驗表明:溫度
    發表于 05-25 06:37

    QT編譯發生C++錯誤是什么問題

    (401.83 KB, 下載次數: 15)下載附件前邊編譯成功(454.93 KB, 下載次數: 18)下載附件QT編譯發生C++錯誤麻煩看一下,是什么問題?
    發表于 01-04 07:16

    TouchGFX靜態曲線

    自動生成一默認的,但由于是C++,封裝在了基類中,子類不能直接修改基類中的數據。所以,要在子類中再重新添加自己的數據,方法如下:這個函數,可以放在Screen3View.cpp中的構造函數內。
    發表于 10-01 20:29

    C++靜態分析中對泛型構件的識別與表示方法

    本文從C++靜態分析的角度出發,介紹了模板和泛型構件技術、一C++靜態分析器實現中對模板和基本泛型構件的分析和識別方法、以及一種基于UML
    發表于 08-17 11:16 ?14次下載

    C/C++源代碼靜態監測設計實現

    為了檢測出C/C++源代碼程序中常見的運行時錯誤,設計了一靜態檢測系統。該系統通過詞法分析、語法分析、語義分析來獲取程序的語法樹。然后系統的檢測程序將會分析語法樹的每
    發表于 06-21 15:06 ?44次下載
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>源代碼<b class='flag-5'>靜態</b>監測設計實現

    C++的動態多態和靜態多態

    多態是 C++ 中面向對象技術的核心機制之一包含靜態多態和動態多態它們之間有一定的相似性但是應用范圍不同該文論述了這種相似性并重點論述了以模板實現的靜態多態的應用范圍
    發表于 06-29 15:41 ?41次下載
    <b class='flag-5'>C++</b>的動態多態和<b class='flag-5'>靜態</b>多態

    跨平臺C++圖形用戶界面應用程序QT4中文教程手冊

    跨平臺C++圖形用戶界面應用程序QT4中文教程手冊
    發表于 08-29 14:22 ?0次下載

    Qt5 C++ GUI Programming Cookbook

    Qt5 C++ GUI Programming Cookbook
    發表于 10-23 16:38 ?22次下載
    <b class='flag-5'>Qt</b>5 <b class='flag-5'>C++</b> GUI Programming Cookbook

    C++ GUI Qt4編程(第二版)配套源代碼匯總

    C++ GUI Qt4編程(第二版)配套源代碼匯總
    發表于 08-03 16:39 ?0次下載

    qtC++寫的2048小游戲源代碼

    qtC++寫的2048小游戲源代碼
    發表于 09-27 11:48 ?1次下載

    基于QT5+OpenCV+OpenVINO C++的應用打包過程

    我用QT C++寫了一YOLOv5模型推理演示應用。
    的頭像 發表于 01-26 10:17 ?1330次閱讀
    基于<b class='flag-5'>QT</b>5+OpenCV+OpenVINO <b class='flag-5'>C++</b>的應用打包過程

    在嵌入式系統中集成Rust和Qt的實踐

    Rust 擁有豐富的庫生態系統,用于序列化和反序列化、異步操作、解析不安全輸入、線程、靜態分析等,而 Qt 是一 C++ 工具包,支持跨各種平臺的豐富的、基于 GUI 的應用程序,從
    發表于 05-03 10:26 ?1828次閱讀
    在嵌入式系統中集成Rust和<b class='flag-5'>Qt</b>的實踐
    主站蜘蛛池模板: 你懂的网址在线观看| 成人亚洲精品| 日韩一级免费视频| 日韩欧美中文字幕在线视频| 国产亚洲人成网站观看| 免费的黄色毛片| 国模私拍在线视频| 国产精品女人在线观看| 一级特黄aaa大片在线观看视频| 夜色爽| 手机看片自拍自自拍日韩免费| 一级做a爰片久久毛片免费| 午夜影院免费在线观看| 天天综合亚洲国产色| 天天爱天天做色综合| 久久天天躁夜夜躁狠狠躁2020| 久草资源网| 欧美成人黄色| 久久精品99无色码中文字幕| 久久精品亚洲一级毛片| 俄罗斯毛片基地| 天天摸天天干天天操| 国产午夜在线观看视频| 91大神免费视频| 中国农村一级片| 色黄污在线看黄污免费看黄污| 末成年一级在线看片| 丁香六月 久久久| 日日躁夜夜躁狠狠天天| 亚洲hh| 九九热re| 手机在线黄色| 狠狠色丁香婷婷综合橹不卡| 欧美xxxxxbbbb| 国产免费高清福利拍拍拍| 午夜国产高清精品一区免费| 国产成人mv 在线播放| 久久在线播放| 日韩三级在线观看视频| 国产精品99r8免费视频2022| 欧美午夜网|