#include <QStandardItemModel>
#include <QStandardItem>
#include <QStyledItemDelegate>
#include <QListView>
#include <QComboBox>
#include <QDebug>
#include "comboboxdelegate.h"
#include "treeviewtest.h"
#include "ui_treeviewtest.h"
TreeViewTest::TreeViewTest(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::TreeViewTest)
{
ui->setupUi(this);
m_pStandardItemModel = new QStandardItemModel(this);
createTableItem();
connect(ui->pushButton, &QAbstractButton::clicked, this, &TreeViewTest::clickBtn);
}
TreeViewTest::~TreeViewTest()
{
delete ui;
}
void TreeViewTest::clickBtn()
{
sumScore(m_pStandardItemModel);
averageScore(m_pStandardItemModel);
}
void TreeViewTest::createTableItem()
{
ui->table->setModel(m_pStandardItemModel);
m_pStandardItemModel->setHorizontalHeaderItem(0,new QStandardItem(QStringLiteral("语文")));
m_pStandardItemModel->setHorizontalHeaderItem(1,new QStandardItem(QStringLiteral("数学")));
m_pStandardItemModel->setHorizontalHeaderItem(2,new QStandardItem(QStringLiteral("英语")));
m_pStandardItemModel->setHorizontalHeaderItem(3,new QStandardItem(QStringLiteral("物理")));
m_pStandardItemModel->setHorizontalHeaderItem(4,new QStandardItem(QStringLiteral("生物")));
m_pStandardItemModel->setHorizontalHeaderItem(5,new QStandardItem(QStringLiteral("化学")));
m_pStandardItemModel->setHorizontalHeaderItem(6,new QStandardItem(QStringLiteral("是否合格")));
m_pStandardItemModel->setHorizontalHeaderItem(7,new QStandardItem(QStringLiteral("下载进度")));
m_pStandardItemModel->setVerticalHeaderItem(0,new QStandardItem(QStringLiteral("胡志坤")));
m_pStandardItemModel->setVerticalHeaderItem(1,new QStandardItem(QStringLiteral("王文富")));
m_pStandardItemModel->setVerticalHeaderItem(2,new QStandardItem(QStringLiteral("王大米")));
m_pStandardItemModel->setVerticalHeaderItem(3,new QStandardItem(QStringLiteral("夏天")));
m_pStandardItemModel->setVerticalHeaderItem(4,new QStandardItem(QStringLiteral("王明双")));
m_pStandardItemModel->setVerticalHeaderItem(5,new QStandardItem(QStringLiteral("祥哥")));
m_pStandardItemModel->setVerticalHeaderItem(6,new QStandardItem(QStringLiteral("总分")));
for(int row = 0; row < 6; ++row)
{
for(int column = 0; column < 6; ++column)
{
if(2 == row)
{
m_pStandardItemModel->setItem(row, column, new QStandardItem("50"));
}
else
{
m_pStandardItemModel->setItem(row, column, new QStandardItem("60"));
}
}
}
ui->table->setModel(m_pStandardItemModel);
m_pComboBoxGate = new ComboBoxDelegate;
//
for(int row = 0; row < 6; ++row)
{
ui->table->setItemDelegateForRow(row, m_pComboBoxGate);
}
}
void TreeViewTest::sumScore(QStandardItemModel *model)
{
for(int column = 0; column < 7; ++column)
{
int sum = 0;
if(6 == column)
{
QStandardItem *item = new QStandardItem;
item->setEnabled(false);
model->setItem(6, column, item);
}
else
{
for(int row = 0; row < 6; ++row)
{
sum += ui->table->model()->index(row, column).data().toInt();
}
QStandardItem *item = new QStandardItem(QString("%1").arg(sum));
item->setEnabled(false);
model->setItem(6, column, item);
}
}
}
void TreeViewTest::averageScore(QStandardItemModel *model)
{
for(int row = 0; row < 6; ++row)
{
int sum = 0;
for(int column = 0; column < 6; ++column)
{
sum += ui->table->model()->index(row, column).data().toInt();
}
if(60 <= sum/6 && 2 != row)
{
model->setItem(row, 6, new QStandardItem(QStringLiteral("合格")));
}
else
{
model->setItem(row, 6, new QStandardItem(QStringLiteral("不合格")));
}
}
}