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

Posted

技术标签:

【中文标题】防止 QTreeView 项目在过滤后自动折叠【英文标题】:prevent QTreeView item from auto collapsing after filtering out 【发布时间】:2013-10-03 03:37:27 【问题描述】:

我正在使用 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】:

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

【讨论】:

在哪里?如何?例子?

以上是关于防止 QTreeView 项目在过滤后自动折叠的主要内容,如果未能解决你的问题,请参考以下文章

Qt - QPushButtons 代替 QTreeView 项目

如何防止 Android Studio 在项目导航中自动折叠我的包?

Qt:setAlternatingRowColors,QTableView隔行自动变色

qt: pyqt: QTreeView 内部拖放几乎可以正常工作...被拖动的项目消失了

Qt - QTreeView 和带有复选框列的自定义模型

QTreeView - 排序和过滤模型