Qt模型视图结构3_模型索引与模型的常用函数
前言
在数据项、模型以及视图三者之间,模型索引扮演着至关重要的角色。因此在此将模型索引的函数列举一下。
模型索引相关函数
模型索引相关函数可以分为四类:
-
与当前数据项相关的函数
//数据项的位置 int QModelIndex::column() const int QModelIndex::row() const //数据项的内容 QVariant QModelIndex::data(int role = Qt::DisplayRole) const //读取数据项的状态(选中、编辑、拖拽、用户可勾选、使能等) Qt::ItemFlags QModelIndex::flags() const
-
获取模型
//获取模型 const QAbstractItemModel *QModelIndex::model() const
-
获取其他的数据项的模型索引
sibling 兄弟姊妹的意思
QModelIndex QModelIndex::parent() const QModelIndex sibling(int row, int column) const QModelIndex QModelIndex::siblingAtRow(int row) const QModelIndex QModelIndex::siblingAtColumn(int column) const
-
模型索引是否合法
bool QModelIndex::isValid() const
模型索引与模型
//从模型中获取模型索引
QModelIndex index = model->index(row,col);
QModelIndex index = model->indexFromItem(item);
//从模型中获取数据项
QStandardItem* item = model->item(row, col);
QStandardItem* item = model->itemFromIndex(index);
访问和修改数据项的方法
QModelIndex idx = theModel->index(0, 0);
theModel->setData(idx, "123", Qt::EditRole);
QStandardItem* it = theModel->item(0, 0);
it->setData("123", Qt::EditRole);