Название: [РЕШЕНО] запрет сортировки при изменении QStandardItem (QSortFilterProxyModel) Отправлено: 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 при изменении таких свойств айтемов, которые не влияют на порядок сортировки? Название: Re: запрет сортировки при изменении QStandardItem (QSortFilterProxyModel) Отправлено: GreatSnake от Апрель 02, 2014, 08:05 Если прокси используется только для сортировки, то лучше от неё отказаться совсем и
задейстровать механизм "прототипа элемента" (http://www.prog.org.ru/index.php?topic=23900.msg169527#msg169527). Название: Re: запрет сортировки при изменении QStandardItem (QSortFilterProxyModel) Отправлено: vintik от Апрель 02, 2014, 12:21 спасибо за ссылку, не знал про этот механизм!
Фильтрация, к сожалению, тоже нужна. Как временное решение отключил Код: setDynamicSortFilter(false); а где нужно принудительно вызывают sort |