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);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通