【发布时间】:2020-01-29 20:17:01
【问题描述】:
我在 PyQt5 中有一个QTreeView,带有可检查的父节点和子节点。我可以展开父节点并在选择/取消选择父节点时进行回调以选择/取消选择所有子节点。这种行为很好。
但是当我取消选择或选择任何子节点时,默认情况下整个树会折叠(右图)。理想情况下,无论何时选择或取消选择子节点,我都希望树保持其所处的状态。是否有 QTreeView 的标志可以覆盖并且不具有折叠所有子节点的默认行为?
我目前的尝试:
每当单击子节点时,我都会跟踪父项的QModelIndex,然后以该父项的QModelIndex 作为参数调用QTreeView 对象上的expand 函数。但这似乎并不能阻止上述行为。但是,expandAll 函数似乎工作正常。但这具有扩展其他父母不感兴趣的孩子的缺点。如果那是他们的状态,我宁愿让他们崩溃。
有人有意见吗?
【问题讨论】:
-
在带有 QStandardItemModel 的 QTreeView 中,如果您需要帮助,请提供 minimal reproducible example
标签: python pyqt treeview pyqt5 qtreeview