Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QAbstractTableModel:index()与createIndex()的比较_Qt_Qmodelindex - Fatal编程技术网

Qt QAbstractTableModel: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

当对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(),createIndex()是子类用来生成索引的。但是,QModelIndex有一个data()成员。所以,模型->索引(行、列)。数据(角色)可能是您想要的。不需要辅助函数

我认为index()是这里的惯用方法,那么您的代码就是正确的

通常,当您需要重写index()和parent()方法时,createIndex()用于QAbstractItemModel的子类中。由于QModelIndex构造函数是私有的,因此必须使用createIndex()创建新索引

此外,QModelIndex可以存储一些内部数据()。createIndex()还用于传递指向已创建的QModelIndex的内部指针