QtCharts繪製條形圖
本文作者林中楓,首發於知乎,未經許可禁止轉載。
條形圖也屬於基本圖表,用的也很多,QtCharts繪製條形圖也很簡單。
首先在工程文件中引入QtCharts模塊:
QT+=charts
接下來就是繪製條形圖,代碼很簡單,看著變數名就知道是什麼意思了,代碼如下:
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QtCharts>
#include<QStringList>
using namespace QtCharts;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QChart *chart=new QChart();
QBarSet *set1=new QBarSet("Tom");
QBarSet *set2=new QBarSet("Bob");
QBarSet *set3=new QBarSet("Martin");
*set1<<16<<22<<56<<33<<11;
*set2<<33<<45<<43<<55<<35;
*set3<<13<<55<<78<<44<<56;
QBarSeries *series=new QBarSeries();
series->append(set1);
series->append(set2);
series->append(set3);
QBarCategoryAxis *axis = new QBarCategoryAxis();
axis->append(QStringList()<<"2014"<<"2015"<<"2016"<<"2017"<<"2018");
chart->addSeries(series);
chart->setAxisX(axis,series);
chart->createDefaultAxes();
chart->setTitle("BarChart");
chart->setTheme(QChart::ChartThemeBlueCerulean);
this->setCentralWidget(new QChartView(chart));
}
MainWindow::~MainWindow()
{
delete ui;
}
QtCharts內置了幾個主題,我用了其中一個,感覺還比較炫,接下來運行程序即可看到我們繪製好的條形圖: