Russian Qt Forum
Ноябрь 01, 2024, 15:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSortFilterProxyModel QTreeView и добавление дочерних элементов  (Прочитано 3821 раз)
zdarovo
Гость
« : Февраль 15, 2010, 19:44 »

Есть кастомный виджет типа QTreeView. В качестве основной модели задаю родную QSortFilterProxyModel модель, а также кастомная модель QAbstractItemModel.
Добавляю корневые элементы таким образом

Код:
        beginInsertRows(QModelIndex(),getRowsCount(), getRowsCount());
        listItems<<block;
        endInsertRows();

Все замечательно, так как для у них отсутствует родительский индекс и его достаточно обозначить как QModelIndex(). К слову говоря отладчик показал, что обработкой beginInsertRow занимается именно модель QSortFilterProxyModel.
Затем я хочу добавеить каждому элементу несколько дочерних таким же образом, но тут возникает вопрос, а каким же образом задавать родительский индекс.
Если я его задам как createIndex(row,0,&block), то результата не никакого. Модель видимо просто не понимает такой индекс.
Если я его задаю как sortModel->index(row,0,QModelIndex()), все проходит замечательно но выдает ругательства в виде "QSortFilterProxyModel: index from wrong model passed to mapFromSource". Т.е. он не может привести индекс к своему виду, так как он уже к нему приведен.

Собсно, вопрос. А как же задавать в такой ситуации индексы? emit layoutChanged() не предлагать.
Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.