详细描述
QModelIndex类用于在一个数据模型中定位数据。
这个类是作为对于一个从QAbstractItemModel派生的项目模型的索引来用的。这个索引被项目视图、代表和选择模型用来在一个模型中定位一个项目。
新的QModelIndex对象是被模型通过使用QAbstractItemModel::createIndex()函数创建的。一个不可用的模型索引可以在QModelIndex的构造函数中构造。不可用的索引通常被用来在模型中引用顶级项目时当作父索引使用。
模型索引引用模型中的项目,它们包含在模型中确定项目的位置所需的全部信息。每个索引被定位到一个指定的行和列,而且可能有一个父索引;使用row(),column()和parent()来获取这种信息。一个模型中的每个顶级项目是由一个没有父索引的模型索引来表示的-在这种情况下,parent()会返回一个不可用的模型索引,它等价于一个以不带参数的方式运行的QModelIndex()构造函数所构造的索引。
要获取指向一个模型中的一个已存在的项目的模型索引,调用QAbstractItemModel::index(),参数包括必需的行和列号,以及父对象的模型索引。当引用一个模型中的顶级项目时,使用QModelIndex()作为父索引。
model()函数以一个 QAbstractItemModel 的形式返回该索引所引用的模型。child()函数用来检查该索引在模型中所持有的项目。sibling()函数允许你在模型中以该索引的同一级别来遍历项目。
备注:模型索引应当被立即使用,然后被丢弃。在调用模型中那些改变模型的结构或者删除项目的函数之后,你不应当再依赖索引自身来保持可用状态。如果你想让一个模型索引在时间上持久一些,使用QPersistentModelIndex。
参考模型/视图编程,QPersistentModelIndex,和QAbstractItemModel。
HxLauncher: Launch Android applications by voice commands