wxPython中带有三态复选框的层次检查树控件?

4 投票
2 回答
3366 浏览
提问于 2025-04-15 21:05

根据标题,这个是可能的吗?

这里说的三态是指父节点的状态:

  • 如果所有子节点都被选中,父节点也被选中
  • 如果所有子节点都没有被选中,父节点也没有被选中
  • 如果有一些子节点被选中,父节点的状态是灰色或填充状态

我之前在C#中用过这种方式,但在wxPython中找不到类似的控件或实现。

2 个回答

3

我在使用 CustomTreeCtrl 时也想做同样的事情,它支持三态复选框。

当你创建根节点时,

self.root= self.tree.AddRoot("root node",ct_type=1)

或者创建一个子节点,

child= self.tree.AppendItem(parent,"child",ct_type=1)

它会返回一个 GenericTreeItem 对象,你可以把它的属性 _is3State 改成 True,

self.root.Set3State(True)

或者

child.Set3State(True)
2

你有没有看看 wx.lib.agw.CustomTreeCtrl 这个东西?

我不太确定它是否默认支持三态(就是有三种状态),不过它是用Python写的,所以扩展它应该挺简单的。

撰写回答