Так что я использую слегка настраиваемый QSortFilterProxyModel
(только что реализованный filterAcceptsRows
) для фильтрации элементов из QStandardItemModel
. В настоящее время он отлично фильтрует, используя setFilterRegExp
, но проблема, с которой я столкнулся, заключается в том, что, поскольку ProxyModel
ищет только элементы, я теряю структуру. Например, допустим, у меня есть такая структура:
Root Folder 1
|----Sub Folder 1
|-----Item 1
|-----Item 2
|-----Item 3
|----Sub Folder 2
|-----Item 1
|-----Item 2
|-----Item 3
Root Folder 2
|----Sub Folder 1
|-----Item 1
|-----Item 3
|----Sub Folder 2
|-----Item 1
|-----Item 2
|-----Item 3
После того, как я закончу фильтрацию, скажем, если имя items
содержит '2', я получу
Item 2
Item 2
Item 2
Предпочтительно я хотел бы, чтобы он вывел:
Root Folder 1
|----Sub Folder 1
|-----Item 2
|----Sub Folder 2
|-----Item 2
Root Folder 2
|----Sub Folder 2
|-----Item 2
Я думал об использовании исходной модели и просто удалял элементы, если они не совпадают, но это определенно кажется неправильным способом go об этом. Я пытался получить родителя в filterAcceptsRows
, но всегда кажется, что он нулевой.
Кажется, что это было бы легко сделать или просто пропустить настройку, которую я пропустил, но любая помощь будет принята с благодарностью!
Спасибо!