QLineSeries QChart QChartView graph (b)

A, rendering
Here Insert Picture Description
two code

#ifndef LINECHART_H
#define LINECHART_H

#include <QObject>
#include <QWidget>
#include <QtCharts>
#include <QtCharts/QLineSeries>
#include <QDateTimeAxis>
#include <QValueAxis>
class lineChart : public QWidget
{
    Q_OBJECT
public:
    lineChart(QWidget* parent = nullptr);
    void init();
};

#endif // LINECHART_H

#include "linechart.h"

lineChart::lineChart(QWidget *parent):
    QWidget (parent)
{
    resize(parent->size());
    show();
    init();
}
void lineChart::init()
{
    QLineSeries *series1 = new QLineSeries();
    series1->setPen(QPen(Qt::darkGreen,1,Qt::SolidLine));
    series1->setName("Line1");
    *series1 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)
                << QPointF(16, 7) << QPointF(18, 5);

    QLineSeries *series2 = new QLineSeries();
    series2->setPen(QPen(Qt::red,1,Qt::SolidLine));
    series2->setName("Line2");
    *series2 << QPointF(1, 6) << QPointF(3, 8) << QPointF(7, 7) << QPointF(9, 8) << QPointF(12, 7)
                << QPointF(16, 8) << QPointF(18, 6);

    QLineSeries *series3 = new QLineSeries();
    series3->setPen(QPen(Qt::blue,1,Qt::SolidLine));
    series3->setName("Line3");
    *series3 << QPointF(1, 7) << QPointF(3, 9) << QPointF(7, 8) << QPointF(9, 9) << QPointF(12, 8)
                << QPointF(16, 9) << QPointF(18, 7);

    QChart *chart = new QChart();
    chart->addSeries(series1);
    chart->addSeries(series2);
    chart->addSeries(series3);
    chart->createDefaultAxes();   //设置默认的坐标系,如果不设置程序是运行不了的
    chart->axisX()->setRange(0, 20);//设置图表坐标轴的范围,可以不设置,自动调节的
    chart->axisY()->setRange(3, 10);
    chart->legend()->setVisible(true); //设置图例为显示状态
    chart->legend()->setAlignment(Qt::AlignBottom);//设置图例的显示位置在底部
    chart->setAnimationOptions(QChart::AllAnimations); // 设置显示时的动画效果

    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);  //抗锯齿渲染
    chartView->setParent(this);
    chartView->resize(this->size());
    chartView->show();
}

e-mail: [email protected]

Published 30 original articles · won praise 1 · views 1156

Guess you like

Origin blog.csdn.net/u010906468/article/details/104685063