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