У меня есть QTreeView, в котором я хочу фильтровать содержимое. Я хочу только отфильтровать это содержимое у детей верхнего уровня (те, которые находятся ниже индекса корня). В настоящее время я достигаю этого, создавая простой метод фильтрации в моем подклассе QTreeView и выборочно скрывая те строки, которые не совпадают.QTreeView: Фильтрация содержимого - поиск лучших практик
В то время как вышеприведенный подход работает нормально, мне интересно, следует ли повторить его с помощью QSortFilterProxyModel. Если да, то каковы будут преимущества?
Если я изменяю к использованию QSortFilterProxyModel, у меня есть несколько (надеюсь, небольшие) вопросы:
1) Поскольку я отфильтрован только на детях верхнего уровня, я бы повторно реализовать любой метод был фактически делая сортировку, чтобы оставить всех внуков в покое, верно?
2) В моей модели данных есть несколько пользовательских методов, которые отвечают за уникальную навигацию по клавиатуре и тому подобное. Могу ли я повторно реализовать их в прокси-модели и указать на мои методы модели данных? Если да, то как мне обратиться к модели? Кажется, я не могу найти ничего похожего на метод модели QTreeView().
Спасибо!