Название: Сохранение состояния представления, во вl Отправлено: daenux от Декабрь 18, 2010, 20:52 Здравствуйте дамы и господа!
У нас есть модель, унаследованная от QAbstractItemModel для представления иерархической информации в QTreeView. Проблема заключаеться в том, что когда модель обновляеться и мы пожаем комманду reset(), то представление закрывает все раскрытые ранее элементы и соответственно теряються выделенные элементы... Как поступить так, что бы при обновлении модели - представление сохранило раскрытые и выделенные элементы (в случае если подобные в модели остались, после ее обновления). Конечно же в контейнер пихать раскрытые и выделенные эллементы, и затем - после обновления сново их раскрывать и выделять вручную так сказать не охото... Быть может мы неверно подаем какие либо сигналы, либо вообще их не подаем? В общих чертах, функция обновления выглядит следующем образом: Код: { Наверное все же как то нужно предупреждать представление заранее, это случайно не beginResetModel() и endResetModel()? Скажите пожалуйста, как их использовать? Название: Re: Сохранение состояния представления, во вl Отправлено: UVV от Декабрь 19, 2010, 08:18 Реализовать добавление/удаление элементов в модель через beginInsertRows(), endInsertRows() / beginRemoveRows(), endRemoveRows().
Если без ресета никак, то только запоминать так, как ты уже предложил (кода на самом деле не много получится). Название: Re: Сохранение состояния представления, во вl Отправлено: daenux от Декабрь 19, 2010, 08:38 Значит мне нужно руководствоваться примером: "Editable Tree Model Example", и тогла ведъ и reset()'а нужно не будет...
А обновлять с помощью переопределенных функции, как в примере - верно? Название: Re: Сохранение состояния представления, во вl Отправлено: UVV от Декабрь 20, 2010, 15:39 Да, можно функции переопределить, можно свои сделать, главное в обоих вариантах использовать beginInsertRows/endInsertRows.
|