【问题标题】:wxPython TreeCtrl without showing root while still showing arrowswxPython TreeCtrl 不显示根但仍显示箭头
【发布时间】:2011-02-24 22:34:20
【问题描述】:

我正在使用 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 版的 Mac 上。

【问题讨论】:

    标签: python tree wxwidgets treecontrol root-node


    【解决方案1】:

    wxTR_LINES_AT_ROOT 是您要找的吗?

    来自wxWidgets documentation

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多