// // Created by Krad on 2021/11/23. // #include #include #include "LogFileTableModel.h" LogFileTableModel::LogFileTableModel(QObject *parent) : QAbstractTableModel(parent) { } void LogFileTableModel::setFileName(QString fileName) { logdata.clear(); QFile f; f.setFileName(fileName); if (!f.exists()) return; if(f.open(QFile::OpenModeFlag::ReadOnly | QFile::OpenModeFlag::Text)) { QTextStream in(&f); while(!in.atEnd()){ logdata.push_back(in.readLine().split("\t")); } } } QVariant LogFileTableModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); if (role == Qt::TextAlignmentRole) { return Qt::AlignCenter; } if (role == Qt::DisplayRole || role == Qt::EditRole ) { return logdata[index.row()][index.column()]; } return QVariant(); } int LogFileTableModel::rowCount(const QModelIndex &parent) const { if (!logdata.isEmpty()) return logdata.count(); return 0; } int LogFileTableModel::columnCount(const QModelIndex &parent) const { if (!logdata.isEmpty()) return logdata[0].count(); return 0; } QVariant LogFileTableModel::headerData(int section, Qt::Orientation orientation, int role) const { if(role != Qt::DisplayRole) return QVariant(); if(orientation == Qt::Horizontal) return headerStrings.at(section); return QVariant(); }