qml: QtCharts模塊得使用(數據整合和顯示) ---- <二>


QtCharts目前已經可以免費使用,而且使用非常方便、快捷,並且提供了各種類別的支持(例如:曲線圖,柱形圖,折線圖,餅圖等)。

這里講解qml端圖表顯示,C++端進行數據整合,並能實現實時數據刷新(該部分參考了StackOverflow上國外網友的經驗)。

首先,在pro中要添加charts,widgets,即

    Qt += qml quick widgets charts

在main.cpp中,添加頭文件 #include <QApplication>(  注, pro中要先添加widgets,不然該頭文件下會顯示橫線,表明找不到),並在main

函數修改為下面的形式:

QCoreApplication app(argc,argv)      //在5.0以上版本中默認是這樣實現的


修改為:

QApplication   app(argc,argv)

到這里我們就將基本的東西配置好了,下面分兩個部分講解如何實現實時刷新的圖表。

1、qml界面實現;

ChartView用於顯示一個圖表,可以說相當於容器,在這個區域內我們進行圖表繪畫,這里可以設定圖表的大小,背景顏色,風格等等,不多說。

AbstractSeries是所有圖表類的基類,它的直接派生子類為AbstractBarSeries, AreaSeries, BoxPlotSeries, CandlestickSeries, PieSeries, and XYSeries

通過XYSeries又可以派生出LineSeries, ScatterSeries, and SplineSeries。 

AbstractAxis是所有圖表軸的基類,派生子類為BarCategoryAxis, CategoryAxis, DateTimeAxis, LogValueAxis, and ValueAxis

界面設計類似如下:

import QtQuick 2.0
import QtCharts 2.2
ChartView {
    id: chartsview;
    width: 400
    height: 300
    theme: ChartView.ChartThemeBrownSand
    antialiasing: true

    ValueAxis{
        id: axiasX;
        max: 1;
        min: 0;
    }

    ValueAxis{
        id: axiasY;
        max: 1;
        min: 0;
    }

    LineSeries{
        id: lineseries;
        axisX: axiasX;
        axisY: axiasY;
    }

    Component.onCompleted: {
        DataSource.setSeries(chartsview.series(0));
    }
}

 

注:  該文還沒有結束,后續將繼續;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM