QSortFilterProxyModel を使用して QTreeView のインクリメンタル検索フィールドを実装しています。検索フィールドは、次のように QLineEdit です。
self.ui_search_lineedit.textEdited[unicode].connect(self._onSearchEdited)
私の _onSearchEdited 関数は次のようになります。
def _onSearchEdited(self, text):
self.proxy_model.setFilterFixedString(text)
self.ui_treeview.clearSelection()
しかし、ツリービューで項目を展開して検索すると、項目が一致しないと消えてしまいます。アイテムに一致させるために検索キーワードを削除すると、アイテムは再び表示されますが、折りたたまれています。たとえば、私のアイテムが「410」で、それを展開したとします。検索フィールドに「4100」と入力すると、アイテムが非表示になります。0を1つ削除して検索キー「410」にすると、項目は表示されますが折りたたまれています。
ユーザーが手動で折りたたまない限り、アイテムを展開したままにする方法はありますか?