crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QSortFilterProxyModel + QAbstractItemModel + QTreeView, После добавлении QSortFilterProxyModel перстает работать QTreeView
flankerr
  опции профиля:
сообщение 20.5.2015, 16:55
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Имеется дерево на QAbstractItemModel и QTreeView связка рабюотает отлично проблем нет.
Пытаюсь прикрутить QSortFilterProxyModel как есть без переобределений просто как прослйку чтобы все завелось как есть но не заваодится.

QAbstractItemModel *pModel = new CMyAbstractItemModel();
QSortFilterProxyModel *pFilter = new QSortFilterProxyModel();
pFilter->setSourceModel(pModel);
QTreeView::setModel(pFilter);

При попытке развернуть любой элемент дерева все "съезжает" перестает отображаться или отображается мягко говря не адекватно. Индексы которые приходят в ::data становятся не валидными.

Аналогичный код но с табличной моделью работает на ура. QSortFilterProxyModel() + QAbstractItemModel + QTableView - все работает как часы.
Вопрос что и как надо переопределить в QSortFilterProxyMode для работы с деревом ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 20.5.2015, 23:50
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


У меня все работает :lol:
Смотрите прикрепленный проект.

Скорее всего ошибка здесь:
indxRes = createIndex(pParentItem->m_index.row(), 0, pParentItem);


Нельзя хранить индексы, если очень нужно используйте:
http://doc.qt.io/qt-4.8/qpersistentmodelindex.html

Сообщение отредактировал lanz - 20.5.2015, 23:53
Прикрепленные файлы
Прикрепленный файл  scratch2.zip ( 2,88 килобайт ) Кол-во скачиваний: 241
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.12.2024, 11:24