4

我正在使用 wxPython 制作一个 python 树可视化器。它会像这样使用:

show_tree([ 'A node with no children', ('A node with children', 'A child node', ('A child node with children', 'Another child')) ])

它工作得很好,但它显示了一个值为“Tree”的根。我这样做是为了它会创建多个根,但后来得知我不允许这样做。我恢复到原始代码,但使用将其从 this: 更改self.tree = wx.TreeCtrl(self)为 this: self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT)。它有效,但它没有显示侧面的小箭头,所以你不会知道哪些节点有孩子。有没有办法隐藏根节点但保留箭头。注意:我在使用 Python 2.5 版和 wxPython 2.8.4.0 版的 Mac 上。

4

2 回答 2

9

注意:当我发布此内容时,我没有意识到您可以将多种样式应用于树。
在尝试了一切之后,我意识到它是 TR_HIDE_ROOT 和 TR_HAS_BUTTONS 的组合,它可以隐藏根,同时仍然在左侧显示箭头,允许您折叠和隐藏带有子节点的节点。这是我最终使用的代码:

self.tree = wx.TreeCtrl(self, style=wx.TR_HAS_BUTTONS + wx.TR_HIDE_ROOT)
于 2010-06-08T00:43:10.317 回答
1

可能wxTR_LINES_AT_ROOT是你要找的吗?

来自wxWidgets 文档

wxTR_LINES_AT_ROOT
  使用此样式显示根节点之间的线条。
  仅当设置了 wxTR_HIDE_ROOT 时才适用
  并且未设置 wxTR_NO_LINES。

免责声明:这是用于 C++ 中的 WX,而不是 python,但它应该是等效的

于 2010-06-07T16:07:18.390 回答