python - 防止 QTreeView 项目在过滤掉后自动折叠

标签 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()

但是,如果我在 TreeView 中展开一个项目并进行搜索,如果该项目不匹配,它就会消失。当我删除我的搜索关键字以使其与该项目匹配时,该项目将再次显示,但它已折叠。例如,如果我的项目是“410”并且我已经扩展了它;我在搜索字段中输入“4100”,该项目将被隐藏;但如果我删除一个 0 使搜索键为“410”,该项目将显示但已折叠。

有什么方法可以使项目保持展开状态,除非用户手动折叠它?

最佳答案

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

关于python - 防止 QTreeView 项目在过滤掉后自动折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040596/

相关文章:

python - 在图中找不到轴实例参数

qt - Qt耦合信号/槽的无限递归

python - Sort_value 错误下降

python二十一点游戏,每次循环生成新值

python - 没有名为 ServerSocket 的模块

c++ - C++类对象双向初始化的实现

c++ - 从 C++ 向 QML 公开串口名称

python - 如何使用QPainterPath?

python - PyQt 中的分层代理模型

python - pipenv : how to force virtualenv directory?