目前完成柱状图绘制部分
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStandardItem>
#include <QStringList>
#include <QLineSeries>
#include <QBarSeries>
#include <QStandardItemModel>
#include <QItemSelectionModel>
#define fixedColumnCount 5 //数据模型的列数
#define iniDataRowCount 6 //学生个数
#define colNoName 0 //姓名的列编号
#define colNoMath 1 //数学的列编号
#define colNoChinese 2 //语文的列编号
#define colNoEnglish 3 //英语的列编号
#define colNoAverage 4 //平均分的列编号
#include <QtCharts> //必须这么设置
//using namespace QtCharts; //必须这么设置
QT_CHARTS_USE_NAMESPACE
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
QStandardItemModel *theModel;
void iniData();//初始化数据
void surveyData();//统计数据
void iniBarChart(); //柱状图初始化
void buildBarChart();//构建柱状图
void iniPiewChart(); //饼图初始化
void buildPieChart(); //构建饼图
void iniStackedBar(); //堆积图初始化
void buildStackedBar(); //构建堆积图
void iniPercentBar(); //初始化
void buildPercentBar(); //构建图表
void iniScatterChart(); //初始化
void buildScatterChart(); //构建图表
private slots:
//三个分数列数据变化时,重新计算平均分
void on_itemChanged(QStandardItem *item);
void on_btnBuildBarChart_clicked();
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);
theModel=new QStandardItemModel(iniDataRowCount,fixedColumnCount,this);//使用行数,列数建立theModel
iniData();//初始化数据
surveyData();//数据统计
//数据模块的itemChanged信号与自定义槽函数关联
connect(theModel,SIGNAL(itemChanged(QStandardItem*)),this,SLO