【Qt Charts】areachart案例学习

发布于:2022-12-07 ⋅ 阅读:(510) ⋅ 点赞:(0)

文章目录

案例

在QtExample中搜索areachart,运行效果如下:

在这里插入图片描述

分析

创建这个面积图,有以下几个步骤:
1.初始化2条Line
2.定义Line的各个Point
3.设置Area,两条线围成一个面
4.创建chart,初始化属性
5.设置chartview。渲染出chart

代码

在QT中新建工程,最小工程中只需要.pro和main.cpp就可以。
因为本案例要用chart,需要在.pro中加入QT += charts

在main.cpp中,引入相关头文件,并初始化界面:

#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QLineSeries>
#include <QtCharts/QAreaSeries>
#include <QtCharts/QChartView>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

	//……

    QMainWindow window;
    window.setCentralWidget(chartView);
    window.resize(800, 600);
    window.show();

    return a.exec();
}

然后开始绘制面积图:
1.初始化Line


    QLineSeries *series0 = new QLineSeries();
    QLineSeries *series1 = new QLineSeries();

2.定义Line的各个Point

    *series0 << QPointF(1,7) << QPointF(5,9) << QPointF(10,7);
    *series1 << QPointF(1,3) << QPointF(5,3) << QPointF(10,3);

3.设置Area

    QAreaSeries *series = new QAreaSeries(series0, series1);
    series->setName("areachart");
    QPen pen(Qt::green);
    pen.setWidth(3);
    series->setPen(pen);

4.创建chart

    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setTitle("Simple areachart example");
    chart->createDefaultAxes();
    chart->axes(Qt::Horizontal).first()->setRange(0, 10);
    chart->axes(Qt::Vertical).first()->setRange(0, 10);

5.设置chartview

    QChartView * chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);   //渲染设置

主要用到的Qt类有QLineSeries、QAreaSeries和QChartView这3个。

效果如下:
在这里插入图片描述

以上。