wxpython treectrl, не показывая root, пока не показывая стрелки

StackOverflow https://stackoverflow.com/questions/2925971

Вопрос

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

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

Он работал нормально, но он показывает корень со значением «дерева». Я сделал это так, чтобы он создал несколько корней, но затем узнал, что мне не разрешено это делать. Я вернулся к исходному коду, но используется изменить его из этого: self.tree = wx.TreeCtrl(self) к этому: self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT). Отказ Работал, но он не показывал маленьких стрел на стороне, чтобы вы не знали, какие у узлов были дети. Есть ли способ скрыть корневой узел, но держать стрелки. Примечание: я на Mac с помощью Python версии 2.5 и WXPYPHON версии 2.8.4.0.

Это было полезно?

Решение

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

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

Другие советы

Мог wxTR_LINES_AT_ROOT Будь то, что вы ищете?

От WxWidgets Документация:

WXTR_LINES_AT_ROOT Используйте этот стиль, чтобы показать линии между корневыми узлами. Применимо только если WXTR_HIDE_ROOT установлен и WXTR_NO_LINES не установлен.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top