Russian Qt Forum
Сентябрь 30, 2024, 14:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] запрет сортировки при изменении QStandardItem (QSortFilterProxyModel)  (Прочитано 1916 раз)
vintik
Гость
« : Апрель 01, 2014, 16:02 »

Привет!

Проблема такая.
Есть класс унаследованный от QStandardItemModel (standard_table_model). У него есть метод set_bg_color(index, color);
В нём вызывается setBackground(color) для найденного по индексу QStandardItem
В кастомной вьюхе я использую этот класс в связке с QSortFilterProxyModel (устанавливаю её как source модель в проксю).
В результате, при вызове set_bg_color(index, color) и последующем setBackground происходит генерация сигнала itemChanged,
что приводит к вызову функции lessThan у QSortFilterProxyModel.

Можно ли как-то запретить вызов lessThan при изменении таких свойств айтемов, которые не влияют на порядок сортировки?
« Последнее редактирование: Апрель 02, 2014, 17:35 от vintik » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Апрель 02, 2014, 08:05 »

Если прокси используется только для сортировки, то лучше от неё отказаться совсем и
задейстровать механизм "прототипа элемента".
Записан

Qt 5.11/4.8.7 (X11/Win)
vintik
Гость
« Ответ #2 : Апрель 02, 2014, 12:21 »

спасибо за ссылку, не знал про этот механизм!
Фильтрация, к сожалению, тоже нужна.

Как временное решение отключил
Код:
setDynamicSortFilter(false);

а где нужно принудительно вызывают sort
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.