wxPython TreeCtrl在显示箭头时没有显示root

时间:2010-05-28 00:33:13

标签: python tree wxwidgets treecontrol root-node

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

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

它运行正常,但它显示了一个值为“Tree”的根。我这样做是为了创造多个根,但后来才知道我不允许这样做。我恢复了原始代码,但使用了从self.tree = wx.TreeCtrl(self)改为:self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT)。它工作但它没有显示侧面的小箭头,所以你不知道哪些节点有孩子。有没有办法隐藏根节点但保留箭头。注意:我使用的是Python 2.5版和wxPython版本2.8.4.0。

2 个答案:

答案 0 :(得分:8)

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

self.tree = wx.TreeCtrl(self, style=wx.TR_HAS_BUTTONS + wx.TR_HIDE_ROOT)

答案 1 :(得分:1)

wxTR_LINES_AT_ROOT可以成为您想要的吗?

来自wxWidgets documentation

wxTR_LINES_AT_ROOT
  Use this style to show lines between root nodes.
  Only applicable if wxTR_HIDE_ROOT is set
  and wxTR_NO_LINES is not set.

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