#include "QtGuiApplication4.h"
#include <QtWidgets/QApplication>
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QLegend>
#include <QtCharts/QBarCategoryAxis>
#include <QtCharts/QValueAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QBarSet* set0 = new QBarSet("ok");//聲明QBarSet實例
QBarSet* set1 = new QBarSet("ng");
//QBarSet* set2 = new QBarSet("Axel");
//QBarSet* set3 = new QBarSet("Mary");
//QBarSet* set4 = new QBarSet("Samantha");
//向QBarSet實例
*set0 << 11 << 12 << 13 <<14 << 15 << 16;//向set0裏不斷追加數據
*set1 << 1 << 1 << 1 << 2 << 1 << 4;
//*set2 << 3 << 5 << 8 << 13 << 8 << 5;
//*set3 << 5 << 6 << 7 << 3 << 4 << 5;
//*set4 << 9 << 7 << 5 << 3 << 1 << 2;
//將數據繪製爲按類別分組的一系列垂直條,每個條形集中的每個類別一個條添加到系列中。
QBarSeries* series = new QBarSeries();//給每一列分配區域
series->append(set0);
series->append(set1);
//series->append(set2);
//series->append(set3);
//series->append(set4);
//設置Char,類似於設計excel直方圖的標籤和導入數據
QChart* chart = new QChart();
chart->addSeries(series);//將serise添加到Char中
chart->setTitle("24 hour operation situation");//char 的標題設置爲
chart->setAnimationOptions(QChart::SeriesAnimations); //動畫在圖表中啓用
//定義字符串列表,用於X軸標籤
QStringList categories;
categories << "8:00~9:00" << "9:00~10:00" << "10:00~11:00" << "11:00~12:00" << "13:00~14:00" << "14:00~15:00";
//設置X軸參數
QBarCategoryAxis* axisX = new QBarCategoryAxis();
axisX->append(categories);//設置X周標籤
chart->addAxis(axisX, Qt::AlignBottom); //將系列標籤放到底下
series->attachAxis(axisX);
//設置Y軸參數
QValueAxis* axisY = new QValueAxis();
axisY->setRange(0, 15);
chart->addAxis(axisY, Qt::AlignLeft);//放到左邊
series->attachAxis(axisY);
//設置標籤對應是可視的
chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);//放到底部
QChartView* chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing); //在 painter 上設置給定的渲染
QMainWindow window; //申明應用窗口的類
window.setCentralWidget(chartView);//將內容寫入窗口
window.resize(420, 300);//設置窗口初始大小
window.show();//顯示
return a.exec();
}
運行結果: