| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #include "examsmodel.h"
- #include "qjsonarray.h"
- #include "qjsonobject.h"
- ExamsTableModel::ExamsTableModel(QObject *parent)
- : QAbstractTableModel(parent)
- {}
- void ExamsTableModel::loadJsonData(const QJsonArray &jsonArray)
- {
- QList<Exams> studentList;
- for (const QJsonValue &value : jsonArray) {
- if (value.isObject()) {
- QJsonObject obj = value.toObject();
- Exams exams;
- exams.id = obj.value("id").toInt();
- exams.name = obj.value("name").toString();
- exams.fileDir = obj.value("fileDir").toString();
- exams.select = (obj.value("isSelect").toInt() != 0);
- exams.maxTime = obj.value("maxTime").toInt();
- studentList.append(exams);
- }
- }
- beginResetModel();
- examsList = studentList;
- endResetModel();
- }
- int ExamsTableModel::rowCount(const QModelIndex &parent) const
- {
- Q_UNUSED(parent);
- return examsList.size();
- }
- int ExamsTableModel::columnCount(const QModelIndex &parent) const
- {
- Q_UNUSED(parent);
- return 4;
- }
- QVariant ExamsTableModel::data(const QModelIndex &index, int role) const
- {
- if (!index.isValid())
- return QVariant();
- if (index.row() >= examsList.size() || index.row() < 0)
- return QVariant();
- if (role == Qt::DisplayRole) {
- const auto &exams = examsList.at(index.row());
- if (index.column() == 0)
- return exams.name;
- else if (index.column() == 1)
- return exams.fileDir;
- else if (index.column() == 2)
- return exams.maxTime;
- else if (index.column() == 3)
- return exams.select;
- }
- return QVariant();
- }
- QVariant ExamsTableModel::headerData(int section, Qt::Orientation orientation, int role) const
- {
- if (role != Qt::DisplayRole)
- return QVariant();
- if (orientation == Qt::Horizontal) {
- switch (section) {
- case 0:
- return tr("name");
- case 1:
- return tr("fileDir");
- case 2:
- return tr("exams max time");
- case 3:
- return tr("select");
- default:
- return QVariant();
- }
- }
- return QVariant();
- }
|