Russian Qt Forum

Qt => Model-View (MV) => Тема начата: grego812 от Апрель 14, 2017, 18:51



Название: Скрыть не подходящие под фильтры Item'ы в QTreeView
Отправлено: grego812 от Апрель 14, 2017, 18:51
Всем привет

Находил похожие темы, но вылезло замечание о том, что ответов не было более 120 дней, рекомендуется создать новую, поэтому прошу прощения, если создал тему-дубль.

Суть задачи в следующем: есть дерево каталогов, в каждом каталоге лежат абоненты. Структура абонента: имя, номер телефона, что-то ещё. Дерево унаследовано от QAbstractItemModel.
В окне, где висит соответствующий QTreeView, есть поле для ввода маски-фильтра, по которой производится поиск абонентов. Сейчас поиск производится и строки с нужными абонентами просто подсвечиваются во всём дереве. Хотелось бы понять, как сделать так, чтобы в окне оставались только те строки, которые удовлетворяют запросу, остальные были при этом скрыты.

Сейчас это выглядит так:
1. Пустая строка фильтра, дерево без подсветки

(https://habrastorage.org/files/7dc/e0e/375/7dce0e37535243068cfea2e7e2ac0879.PNG)

2. Дерево после ввода маски в поле фильтра

(https://habrastorage.org/files/62e/a54/fe8/62ea54fe88824afeb38ed3fe8a1f877b.PNG)


Название: Re: Скрыть не подходящие под фильтры Item'ы в QTreeView
Отправлено: nvek от Апрель 17, 2017, 19:54
в примерах qt есть filtermodel. Советую посмотреть как там работает