#include "mytablemodel.h" #include #include MyTableModel::MyTableModel(QObject *parent) { } MyTableModel::~MyTableModel() { } int MyTableModel::rowCount(const QModelIndex &parent) const { return modelData.count(); } int MyTableModel::columnCount(const QModelIndex &parent) const { return headeList.size(); } QVariant MyTableModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role == Qt::DisplayRole && orientation == Qt::Horizontal) { if (section < headeList.size()) { return headeList[section]; } } return QAbstractItemModel::headerData(section, orientation, role); } bool MyTableModel::setData(const QModelIndex &index, const QVariant &value, int role) { if(!index.isValid()) return 0; if(role == Qt::DisplayRole || role == Qt::EditRole) { const int row=index.row(); switch(index.column()) { case 0: modelData[row].id=value.toString();break; case 1:modelData[row].name=value.toString();break; case 2:modelData[row].one=value.toString();break; case 3:modelData[row].two=value.toString();break; case 4:modelData[row].three=value.toString();break; case 5:modelData[row].four=value.toString();break; case 6:modelData[row].five=value.toString();break; case 7:modelData[row].six=value.toString();break; } emit dataChanged(index, index, QVector() << role); return true; } return false; } //bool MyTableModel::insertRows(int row, int count,const QModelIndex &parent) //{ if(row<0||count<1||row>rowCount()) return false; //需要将操作放到beginInsertRows和endInsertRows两个函数调用之间 beginInsertRows(parent, row, row + count - 1); for(int i=row;irowCount()) return false; //需要将操作放到beginRemoveRows和endRemoveRows两个函数调用之间 beginRemoveRows(parent, row, row + count - 1); if(m_DeleteList.size()!=0) { for(int i=0;i=row;i--) // { // //移除该行数据 // modelData.removeAt(i); // } m_DeleteList.clear(); endRemoveRows(); return true; } void MyTableModel::SetDeleteList(QList i_List) { m_DeleteList=i_List; } QVariant MyTableModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); if(role == Qt::DisplayRole || role == Qt::EditRole) { const int row=index.row(); switch(index.column()) { case 0: return modelData.at(row).id; case 1:return modelData.at(row).name; case 2:return modelData.at(row).one; case 3:return modelData.at(row).two; case 4:return modelData.at(row).three; case 5:return modelData.at(row).four; case 6:return modelData.at(row).five; case 7:return modelData.at(row).six; } } return QVariant(); } void MyTableModel::SetHeadData(QStringList i_list) { headeList=i_list; } void MyTableModel::SetModelData(QList model) { modelData=model; }