wxPython TreeCtrl без показа рута и отображения стрелок
Я делаю визуализатор дерева Python, используя 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)
, Это работало, но не показывало маленькие стрелки сбоку, чтобы вы не знали, у каких узлов есть дети. Есть ли способ скрыть корневой узел, кроме как сохранить стрелки. Примечание: я использую Python версии 2.5 и wxPython версии 2.8.4.0.
2 ответа
Примечание. Когда я публиковал это, я не осознавал, что вы можете применять несколько стилей к деревьям.
Попробовав все, я понял, что это комбинация TR_HIDE_ROOT и TR_HAS_BUTTONS, которая позволяет скрыть корень, в то же время показывая стрелки с левой стороны, которые позволяют вам сворачивать и скрывать узлы с дочерними элементами. Это код, который я в конечном итоге использовал:
self.tree = wx.TreeCtrl(self, style=wx.TR_HAS_BUTTONS + wx.TR_HIDE_ROOT)
Мог wxTR_LINES_AT_ROOT
быть тем, что вы ищете?
wxTR_LINES_AT_ROOT Используйте этот стиль, чтобы показать линии между корневыми узлами. Применимо только если wxTR_HIDE_ROOT установлен и wxTR_NO_LINES не установлен.
Отказ от ответственности: это для WX в C++, а не Python, но это должно быть эквивалентно