Название: [Qt 4.2.2]Работа с QTreeView. Expand и select нодов. Отправлено: Tamara от Февраль 28, 2007, 09:20 Есть дерево, в которое можно добавлять ноды, открываю несколько нодов, что-то выделяю... Добавляю в дерево новый элемент, после чего делаю reset() (beginInsertRow и т.п - это в этом плане то же самое).
Естественно дерево возвращается в изначальное положение (все ноды закрываются и т.п.). Я хочу как-нибудь сохранить ссылки на индексы открытых (выделенных) элементов, чтоб потом их переоткрыть (выделить). Но с ними творится что-то странное (становятся не валидными еще за долго до ресета, не могу понять в какой конктретный момент)... Как вообще сохранить состояние дерева? Может я не так использую beginInsert/endInsert и с их помощью все делается само? И вообще почему могут индексы невалидными становиться? Поделитесь хоть каким-нибудь опытом на этот счет, пожалуйста... Ну или где это написано может быть.... :? Название: [Qt 4.2.2]Работа с QTreeView. Expand и select нодов. Отправлено: Sergey B. от Февраль 28, 2007, 10:16 Просто...
Кажется я начинаю понимать Qt && Assistant :) Вот пример на QTableView && QSqlQueryModel Код:
Код:
Название: [Qt 4.2.2]Работа с QTreeView. Expand и select нодов. Отправлено: Lion от Февраль 28, 2007, 10:21 QModelIndex нельзя сохранять, в этом случае надо использовать QPersistentModelIndex.
Название: [Qt 4.2.2]Работа с QTreeView. Expand и select нодов. Отправлено: Tamara от Февраль 28, 2007, 14:04 Цитата: "Lion" QModelIndex нельзя сохранять, в этом случае надо использовать QPersistentModelIndex. Ва! Здорово!:) Действительно теперь они сохраняются! Только теперь после ресета модели хлопаются... :( В смысле невалидными становятся. Это, конечно, логично, но может это можно как-то обойти? добавлено спустя 3 часа 7 минут: Цитата: "Sergey B." Просто... Кажется я начинаю понимать Qt && Assistant :) Вот пример на QTableView && QSqlQueryModel Код:
Что-то мне никак не удается в полной мере огрокать смысл этого поста в отношении заданных мною вопросов... Можно небольшое пояснение для тех, кто в танке?;) |