如下为 parent()函数与mapFromSource()函数,问题如下,源码为c++inQT proxymodel一节。
QModelIndex RevertProxyModel::parent(const QModelIndex & proxy_child) const
{
QModelIndex source_child = mapToSource( proxy_child );
QModelIndex source_parent = sourceModel()->parent( source_child );
return mapFromSource( source_parent );
}
QModelIndex RevertProxyModel::mapFromSource ( const QModelIndex & source_index ) const
{
if (!source_index.isValid())
return QModelIndex();
int rowCount = sourceModel()->rowCount( source_index );//这句不是求当前 source_index之子项的个数吗?
int pos = register_index( source_index );
return createIndex( rowCount -1 - source_index.row(),
source_index.column(), pos );//这句不是求当前source_index所对应在索引池中的代理模型索引吗,但用的rowCount为什么要用子项的?
}