我有一个从QAbstractListModel
派生的列表模型和一些数据。然后是QSortFilterProxyModel
模型,用于对第一个进行排序。
proxyModel_.setSourceModel(qobject_cast<QAbstractListModel *>(&myListModel_));
proxyModel_.setDynamicSortFilter(true);
proxyModel_.setSortRole(myModel_.sortingRole());
view_->rootContext()->setContextProperty("myModel", &proxyModel_);
在qml中:
ListView {
model: myModel
delegate: Rectangle {
property int delegateIndex: index // I use this property for selecting the correct row from the list
...
}
}
然后在代码的某处,我用
对模型进行排序proxyModel_.sort(0, Qt::DescendingOrder);
问题是在视觉上listView被正确排序,但是当我点击某个委托时,它会在排序之前返回索引。这可能是个问题?谢谢你的帮助。