将复选框列添加到树左侧的 QTreeView 的方法?

Posted

技术标签:

【中文标题】将复选框列添加到树左侧的 QTreeView 的方法?【英文标题】:Methods of adding columns of check boxes to QTreeView to the left of the tree? 【发布时间】:2015-05-18 21:57:50 【问题描述】:

我正在尝试在 QTreeView 的树部分左侧添加几列复选框。据我所知,仅使用 QTreeView 所有列都必须位于树控件的右侧。

我可能会考虑使用两个小部件,但同步和非叶节点复选框需要反映子节点的混合状态的技巧(其细节超出了本问题的范围)似乎加剧了问题 - 似乎两个小部件的状态需要紧密耦合,以便左侧小部件(可能是复选框列表)根据右侧小部件(树)中的可见节点显示正确的复选框)。

有哪些更好的方法来实现这一点?

这是我正在尝试做的一个示例:

【问题讨论】:

更好的方法 - 自定义委托 + QStandardItemModel 自定义角色。 【参考方案1】:

看起来 QTreeView::setTreePosition() 可以解决问题。

【讨论】:

以上是关于将复选框列添加到树左侧的 QTreeView 的方法?的主要内容,如果未能解决你的问题,请参考以下文章

拖放到 QTreeView 中的 QStandardItemModel 不起作用

如何删除 QTreeView 左侧的空白区域

如何将带有列标题的 QTreeView 重做为 QTableView?

如何在 QTableView 列中添加 QTreeView

用复选框重写 QTreeWidget >>> QTreeView?

QTreeView/QTableView中利用QStandardItem实现复选框三种形态变化