【问题标题】:PyQt5 QTreeView auto collapses on checking a child nodePyQt5 QTreeView 在检查子节点时自动折叠
【发布时间】:2020-01-29 20:17:01
【问题描述】:

我在 PyQt5 中有一个QTreeView,带有可检查的父节点和子节点。我可以展开父节点并在选择/取消选择父节点时进行回调以选择/取消选择所有子节点。这种行为很好。

但是当我取消选择或选择任何子节点时,默认情况下整个树会折叠(右图)。理想情况下,无论何时选择或取消选择子节点,我都希望树保持其所处的状态。是否有 QTreeView 的标志可以覆盖并且不具有折叠所有子节点的默认行为?

我目前的尝试: 每当单击子节点时,我都会跟踪父项的QModelIndex,然后以该父项的QModelIndex 作为参数调用QTreeView 对象上的expand 函数。但这似乎并不能阻止上述行为。但是,expandAll 函数似乎工作正常。但这具有扩展其他父母不感兴趣的孩子的缺点。如果那是他们的状态,我宁愿让他们崩溃。

有人有意见吗?

【问题讨论】:

标签: python pyqt treeview pyqt5 qtreeview


【解决方案1】:

诀窍是使用模型的索引而不是项目的索引来跟踪所有父节点的展开状态。

model.index(item.index().row(), 0)

而不是

item.index()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 2019-02-21
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多