Название: Select в QTreeView после layoutChanged Отправлено: TigerProg от Апрель 02, 2015, 23:06 Всем привет!
Есть моя модель(на основе QAbstractItemModel) и стандартная QSortFilterProxyModel на которую настроено дерево. Сортировка осуществляется по столбцу sortOrder из модели. Код: myModel = new MyModel(this); Нужно поднять одну строку в дереве выше (поменять sortOrder местами у двух строк). Код: void Widget::on_btnUp_clicked() После этого куда-то пропадает выделение в дереве, как его вернуть? Код в модели метода подъёма: Код: bool MyModel::moveUp( const QModelIndex& index ) Прикрепил к посту всё тестовое приложение. Для того, чтобы понять мою проблему, нужно встать на любой item без child'ов в середине списка и нажать up - item'ы поменяются местами, но выделение пропадёт. Причём если item имеет child'ов, то всё работает! Название: Re: Select в QTreeView после layoutChanged Отправлено: Авварон от Апрель 04, 2015, 01:26 Надо обновлять персистент индексы. См методы QAIM::persistentIndexList и QAIM::changePersistentIndexList
Название: Re: Select в QTreeView после layoutChanged Отправлено: TigerProg от Апрель 04, 2015, 03:05 Спасибо за ответ!
Я пробовал вызывать changePersistentIndex для индексов объектов меняемых местами вот тут Код: bool MyModel::moveUp( const QModelIndex& index ) Но ничего не получилось( Какие именно индексы и в какой момент нужно обновлять? |