A, rendering
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]