Как обновить содержимое представления, после сортировки модели? |
Здравствуйте, гость ( Вход | Регистрация )
Как обновить содержимое представления, после сортировки модели? |
Errazm |
4.11.2009, 10:04
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 4.11.2009 Пользователь №: 1204 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ситуация такова: пытаюсь разобраться с технологией модель/представление на примере собственного небольшого файлового менеджера.
Начал реализовывать свою модель: class FastDirModel : public QAbstractTableModel. Добрался до сортировки. Из исходника QDirModel выдрал сортировку, чуть изменил ее (разбил на две функции) для удобства.
Теперь о проблеме: когда в представлении (class TreeDirView : public QTreeView) кликаю по секции заголовка, ничего не происходит. Случайно заметил, что если после клика изменить размер какой-нибудь колонки, то виджет тут же перерисовывается с последним результатом сортировки. Т.е. сортировка происходит, но не отображается. Итого: как мне обновить содержимое QTreeView после сортировки? Вот фрагмент конструктора
Пока что я пользуюсь таким трюком: автоматически изменяю размер каждой колонки и тут же делаю его прежним. (Если изменить размер одной колонки, то обновится информация только в ней):
Но мне кажеться, что это ересь ужасная. Должен же быть какой-то прямой путь! Подскажите, пожалуйста Блин, в первой же теме - и напартачил. Правильно вопрос будет звучать так: Как обровить содержимое представления, после сортировки модели? |
|
|
Litkevich Yuriy |
4.11.2009, 11:13
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Как обровить содержимое представления, после сортировки модели? модель должна посылать сигналы, напамять:dataChenge - при изменении части данных reset - при крупных изменениях. П.С. я бы рекомендовал сначала разобраться с моделью (т.е. использовать стандартное представление), а затем перейти к созданию представления. |
|
|
Errazm |
4.11.2009, 12:33
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 4.11.2009 Пользователь №: 1204 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Авварон |
4.11.2009, 16:38
Сообщение
#4
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
там в QDirModel есть метод reset(QModelIndex) и он зовется после установки сортироки. Правда как он работает, я не понял) там что-то хитрое с сохранением/восстановлением индексов
|
|
|
Текстовая версия | Сейчас: 30.12.2024, 18:57 |