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

QtCharts目前已經能夠無償使用,並且使用很是方便、快捷,而且提供了各類類別的支持(例如:曲線圖,柱形圖,折線圖,餅圖等)。app

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

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

    Qt += qml quick widgets charts設計

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

函數修改成下面的形式:blog

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


修改成:

QApplication   app(argc,argv)

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

一、qml界面實現;io

ChartView用於顯示一個圖表,能夠說至關於容器,在這個區域內咱們進行圖表繪畫,這裏能夠設定圖表的大小,背景顏色,風格等等,很少說。class

AbstractSeries是全部圖表類的基類,它的直接派生子類爲AbstractBarSeries, AreaSeries, BoxPlotSeries, CandlestickSeries, PieSeries, and XYSeriesimport

經過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));
    }
}

 

注:  該文尚未結束,後續將繼續;

相關文章
相關標籤/搜索