在对QAbstractTableModel进行子类化时,获取给定行和列的数据的正确方法是什么(例如,提供一个方便的方法QModelIndex ( int row,int column))?
有索引()和createIndex() --它们似乎都是这样做的?
示例:
TableModel::data(int row, int column, int role) const
{
return data(index(row, column), role);
}发布于 2012-11-18 11:34:52
你想要的是索引(),createIndex()是子类用来生成索引的。但是,QModelIndex有一个data()成员。因此,模型->索引(行、列)角色(.data)可能是您想要的。不需要辅助函数。
发布于 2012-11-18 11:47:18
我想说index()是这里惯用的方式,那么你的代码就是正确的。
通常,当您需要覆盖QAbstractItemModel ()和parent()方法时,createIndex()用于QAbstractItemModel的子类中。因为QModelIndex构造函数是私有的,所以必须使用createIndex()来创建新的索引。
此外,QModelIndex可以存储一些内部数据(QModelIndex::internalPointer)。createIndex()还用于传递指向创建的QModelIndex的内部指针。
https://stackoverflow.com/questions/13435627
复制相似问题