wxPython TreeCtrl, не показывая root, пока показывает стрелки - PullRequest
3 голосов
/ 28 мая 2010

Я делаю визуализатор дерева питонов, используя wxPython. Это будет использоваться так:

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). Это работало, но не показывало маленькие стрелки сбоку, чтобы вы не знали, у каких узлов есть дети. Есть ли способ скрыть корневой узел, кроме как сохранить стрелки. Примечание. Я работаю на Mac с Python версии 2.5 и wxPython 2.8.4.0.

Ответы [ 2 ]

8 голосов
/ 08 июня 2010

Примечание. Когда я публиковал это, я не осознавал, что вы можете применять несколько стилей к деревьям.
Попробовав все, я понял, что это комбинация TR_HIDE_ROOT и TR_HAS_BUTTONS, которая позволяет скрыть корень, в то же время показывая стрелки на левой стороне, которые позволяют вам свернуть и скрыть узлы с дочерними элементами. Это код, который я использовал в итоге:

self.tree = wx.TreeCtrl(self, style=wx.TR_HAS_BUTTONS + wx.TR_HIDE_ROOT)
1 голос
/ 07 июня 2010

Может ли wxTR_LINES_AT_ROOT быть тем, что вы ищете?

Из документации по wxWidgets :

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.

отказ от ответственности: это для WX в c ++, а не в python, но должно быть эквивалентно

...