У меня есть QStandardItemModel и QTableView. Вид сортируется иначе, чем модель. Я использую QSortFilterProxyModel.
Если я выберу в представлении строку, которую хочу удалить, как узнать, какой строке в модели соответствует?
От,
http://doc.qt.io/qt-5/qitemselectionmodel.html
QModelIndexList QItemSelectionModel :: selectedIndexes () const
Возвращает
список всех выбранных индексов модели. Список не содержит
дублирует и не сортируется.
Это доступно из модели выбора вида.
Вы также можете определить, какая строка в представлении представляет какой QModelIndex. Например QAbstractItemView::visualRect(const QModelIndex &)
получает визуальный прямоугольник индекса. Существует также indexAt(const QPoint &)
для отображения в другом направлении.
А теперь, поскольку вы добавили, что используете прокси-модель, используйте функцию прокси-модели для сопоставления с исходной моделью — QSortFilterProxyModel::mapToSource
В итоге,