目录
原图:
效果图(后面的数据懒得画了……)
换个风格:
注意添加:
QT += charts
QT_CHARTS_USE_NAMESPACE
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowIcon(QIcon("icon.png"));
setWindowTitle(QStringLiteral("全国疫情确诊新增趋势图"));
createCharts();
}
MainWindow::~MainWindow()
{
delete ui;
}
//创建图标
void MainWindow::createCharts(){
QChartView *chartView = new QChartView(this);
QChart *chart = new QChart();
chart->setTitle(QStringLiteral("全国疫情确诊新增趋势图"));
chartView->setChart(chart);//将chart添加到chartview中
this->setCentralWidget(chartView);
//创建折线序列
QLineSeries *series0 = new QLineSeries();
QLineSeries *series1 = new QLineSeries();
//设置折线名称
series0->setName(QStringLiteral("湖北确诊新增"));
series1->setName(QStringLiteral("湖北外新增确诊"));
//将序列添加到列表
chart->addSeries(series0);
chart->addSeries(series1);
//在序列中添加数值
// qreal t = 0,y1,y2,intv = 0.1;
// for(int i=0;i<100;i++){
// y1 = qSin(t);
// series0->append(t,y1);
// y2 = qCos(t);
// series1->append(t,y2);
// t+=intv;
// }
qreal t,y0,y1;
y0 = 300;
t = 1.23;
series0->append(t,y0);
y1 = 320;
t = 1.23;
series1->append(t,y1);
y0 = 350;
t = 1.24;
series0->append(t,y0);
y1 = 370;
t = 1.24;
series1->append(t,y1);
y0 = 430;
t = 1.25;
series0->append(t,y0);
y1 = 440;
t = 1.25;
series1->append(t,y1);
y0 = 490;
t = 1.26;
series0->append(t,y0);
y1 = 480;
t = 1.26;
series1->append(t,y1);
y0 = 1200;
t = 1.27;
series0->append(t,y0);
y1 = 500;
t = 1.27;
series1->append(t,y1);
y0 = 800;
t = 1.28;
series0->append(t,y0);
y1 = 600;
t = 1.28;
series1->append(t,y1);
//设置主题风格
// QChart::ChartTheme theme = QChart::ChartThemeBlueCerulean;
QChart::ChartTheme theme = QChart::ChartThemeDark;
chart->setTheme(theme);
//创建坐标轴
QValueAxis *axisX = new QValueAxis;
axisX->setRange(1.22,2.04);//设置坐标轴范围
axisX->setTitleText(QStringLiteral("时间"));
QValueAxis *axisY = new QValueAxis;
axisY->setRange(0,3500);//设置坐标轴范围
axisX->setTitleText(QStringLiteral("人数"));
//为序列设置坐标轴
chart->setAxisX(axisX,series0);
chart->setAxisY(axisY,series0);
chart->setAxisX(axisX,series1);
chart->setAxisY(axisY,series1);
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QChart>
#include <QChartView>
#include <QLine>
#include <QLineSeries>
#include <QtMath>
#include <QValueAxis>
QT_CHARTS_USE_NAMESPACE
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
void createCharts();
};
#endif // MAINWINDOW_H