QSortFilterProxyModel: index from wrong model passed to mapToSource啥原因
时间: 2024-05-07 15:23:18 浏览: 232
这个错误通常是由于在 QSortFilterProxyModel 中使用了错误的来源模型导致的。QSortFilterProxyModel 旨在过滤或排序其来源模型中的数据,因此您必须将其设置为正确的来源模型。
请确保在创建 QSortFilterProxyModel 实例时将正确的来源模型传递给它。例如:
```
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(sourceModel); // 设置正确的来源模型
```
如果您已经设置了正确的来源模型,则可能是在使用 mapToSource() 函数时出错了。在 QSortFilterProxyModel 中,mapToSource() 函数用于将代理模型中的索引转换为来源模型中的索引。如果您在使用 mapToSource() 函数时传递了错误的索引,则会出现类似于“index from wrong model passed to mapToSource”的错误。
请确保您在调用 mapToSource() 函数之前使用 QSortFilterProxyModel::index() 函数获取代理模型中的正确索引。例如:
```
QModelIndex proxyIndex = proxyModel->index(proxyRow, proxyColumn);
QModelIndex sourceIndex = proxyModel->mapToSource(proxyIndex);
```
如果您仍然无法解决问题,请检查您的代码以查看是否有其他地方导致了错误的来源模型传递给了 QSortFilterProxyModel。
阅读全文