过滤掉后,防止QTreeView项自动折叠

时间:2013-09-26 23:54:32

标签: python qt pyqt qtreeview qsortfilterproxymodel

我正在使用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以使搜索键“410”,该项目将显示但它已折叠。

除非用户手动折叠,否则有没有办法让项目保持展开状态?

1 个答案:

答案 0 :(得分:0)

您可以手动检查并存储每个项目的折叠状态,然后将其恢复到所需的状态。