Я использую QSortFilterProxyModel
, а свойство dynamicSortFilter
не работает.
// main.cpp
QSortFilterProxyModel carsProxyModel;
carsProxyModel.setSourceModel(&carsModel);
carsProxyModel.setDynamicSortFilter(false); // whatever its true or false, it does not change the behavior
На стороне QML у меня есть 2 ListView
, один для исходной модели и один для прокси, и они отображают список автомобилей таким же образом.
Когда исходная модель перевернута:
// carmodel.cpp
void CarModel::reverseModel()
{
beginResetModel();
std::reverse(m_carItems.begin(), m_carItems.end());
endResetModel();
}
Оба представления показывают перевернутый список автомобилей, и это то, что я ожидаю, когда dynamicSortFilter
истинно, но не тогда, когда его ложь (https://doc.qt.io/qt-5/qsortfilterproxymodel.html#dynamicSortFilter -prop ), на самом деле оба значения всегда приводят к изменению в представлении прокси.
Возможно, я не использую право собственности, но я пока не вижу ничего другого.
Когда исходная модель перевернута - я не хочу видеть изменения в представлении прокси, только в исходном представлении. Возможно ли это?
Надеюсь, этот вопрос ясен, я попытался извлечь наиболее важные части, потому что кодовая база слишком длинная, чтобы ее можно было здесь разместить.
Спасибо.
РЕДАКТИРОВАТЬ:
Небольшой пример:
если прокси-представление отсортировано по «марке автомобиля» (QString
), то изменение исходной модели будет обратный порядок автомобилей той же марки, но сортировка или фильтрация обычно сохраняется (для автомобилей разных марок)