Здравствуйте, гость ( Вход | Регистрация )
Авварон | Дата 4.11.2009, 16:38 |
там в QDirModel есть метод reset(QModelIndex) и он зовется после установки сортироки. Правда как он работает, я не понял) там что-то хитрое с сохранением/восстановлением индексов | |
Errazm | Дата 4.11.2009, 12:33 |
dataChenge - при изменении части данных - это я пробовал, не помогло... reset - при крупных изменениях. - а вот это - помогло! Спасибо! |
|
Litkevich Yuriy | Дата 4.11.2009, 11:13 |
Как обровить содержимое представления, после сортировки модели? модель должна посылать сигналы, напамять:dataChenge - при изменении части данных reset - при крупных изменениях. П.С. я бы рекомендовал сначала разобраться с моделью (т.е. использовать стандартное представление), а затем перейти к созданию представления. |
|
Errazm | Дата 4.11.2009, 10:04 |
Ситуация такова: пытаюсь разобраться с технологией модель/представление на примере собственного небольшого файлового менеджера. Начал реализовывать свою модель: class FastDirModel : public QAbstractTableModel. Добрался до сортировки. Из исходника QDirModel выдрал сортировку, чуть изменил ее (разбил на две функции) для удобства.
Теперь о проблеме: когда в представлении (class TreeDirView : public QTreeView) кликаю по секции заголовка, ничего не происходит. Случайно заметил, что если после клика изменить размер какой-нибудь колонки, то виджет тут же перерисовывается с последним результатом сортировки. Т.е. сортировка происходит, но не отображается. Итого: как мне обновить содержимое QTreeView после сортировки? Вот фрагмент конструктора
Пока что я пользуюсь таким трюком: автоматически изменяю размер каждой колонки и тут же делаю его прежним. (Если изменить размер одной колонки, то обновится информация только в ней):
Но мне кажеться, что это ересь ужасная. Должен же быть какой-то прямой путь! Подскажите, пожалуйста Блин, в первой же теме - и напартачил. Правильно вопрос будет звучать так: Как обровить содержимое представления, после сортировки модели? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 27.4.2024, 14:39 |