TxTableModel::TxTableModel(QObject *parent) : QAbstractTableModel(parent)........QVariant TxTableModel::data(const QModelIndex & index, int role) const{ switch(role){ case Qt::DisplayRole: // заполнение данными return m_DataPtr->getCell(index.row(), index.column()); break; case Qt::CheckStateRole : if(m_DataPtr->isColumnCheck( index.column()) ){ ВОТ ТУТ мне нужно изменить данные моём классе с данными, и вернуть нужный Qt::CheckState } }}
/** * Filling in the data table */QVariant TxTableModel::data(const QModelIndex & index, int role) const{ // qDebug("TxTableModel::data"); switch(role){ case Qt::DisplayRole: // заполнение данными return m_DataPtr->getCell(index.row(), index.column()); break; case Qt::CheckStateRole: if(m_DataPtr->isColumnCheck( index.column()) && m_DataPtr->isRowCheck( index.column()) ) { return m_DataPtr->getItemChecedId(index.row()); } break; } return QVariant();}/** * Change data in datagred */bool TxTableModel::setData( const QModelIndex & index, const QVariant & value, int role ){ // Qt::EditRole // для изменения в ячейке if (role == Qt::CheckStateRole) { m_DataPtr->isItemChecedId(index.row()); } return true;}/** * Sets the flag */Qt::ItemFlags TxTableModel::flags(const QModelIndex &index) const{ if (!index.isValid()) return Qt::ItemIsEnabled; return QAbstractTableModel::flags(index) | Qt::ItemIsUserCheckable | Qt::ItemIsEditable ;}
C++ (Qt)QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) const { ... TreeItem *childItem = parentItem->child(row); if (childItem) return createIndex(row, column, childItem); else return QModelIndex(); ... }
QModelIndex TxTableModel::index(int row, int column, const QModelIndex &parent) const{ if(parent == QModelIndex()) { return createIndex(row, column, (quint32)(row+1) * 10 + (column)); } return QModelIndex();}