2013-09-12 2 views
1

Я использую QSortFilterProxyModel в QTreeView, и я пытаюсь фильтровать элементы верхнего уровня и дочерние элементы первого уровня.Фильтрация дочернего элемента с помощью QSortFilterProxyModel

Возможно ли это? Кажется, что QSortFilterProxyModel фильтрует только элементы верхнего уровня.

ответ

2

Не могли бы вы предоставить более подробную информацию о том, что вы уже пробовали? The doc говорит Если родительский элемент не соответствует фильтру, ни один из его дочерних элементов не будет показан, что, вероятно, объясняет, почему он, кажется, фильтрует только на первом уровне.

Если ваша цель состоит в том, чтобы фильтровать только определенные уровни дерева, вы должны создать подкласс QSortFilterProxyModel и переопределение filterAcceptRow. Таким образом вы можете указать игнорировать элементы, не относящиеся к определенным уровням дерева. См. the doc для получения дополнительной информации.