Qt QAbstractTableModel:index()与createIndex()的比较
当对QabStretctTableModel进行子类化时,获取给定行和列的QModelIndex的正确方法是什么(例如,提供方便的方法data(int row,int column)) 有index()和createIndex()-它们似乎都这样做 例如:Qt QAbstractTableModel:index()与createIndex()的比较,qt,qmodelindex,Qt,Qmodelindex,当对QabStretctTableModel进行子类化时,获取给定行和列的QModelIndex的正确方法是什么(例如,提供方便的方法data(int row,int column)) 有index()和createIndex()-它们似乎都这样做 例如: TableModel::data(int row, int column, int role) const { return data(index(row, column), role); } 您需要的是index(),create
TableModel::data(int row, int column, int role) const
{
return data(index(row, column), role);
}
您需要的是index(),createIndex()是子类用来生成索引的。但是,QModelIndex有一个data()成员。所以,模型->索引(行、列)。数据(角色)可能是您想要的。不需要辅助函数 我认为index()是这里的惯用方法,那么您的代码就是正确的
通常,当您需要重写index()和parent()方法时,createIndex()用于QAbstractItemModel的子类中。由于QModelIndex构造函数是私有的,因此必须使用createIndex()创建新索引
此外,QModelIndex可以存储一些内部数据()。createIndex()还用于传递指向已创建的QModelIndex的内部指针