2016-11-04 2 views
0

Я создал дерево, используя CT.CustomTreeCtrl в wxpython. Теперь я хочу прочитать всех детей в дереве. Моя древовидная структура похожа на a-> b-> c, где a - корневой узел, b - дочерний элемент a и parent c.Как получить все узлы из CT.CustomTreeCtrl в wxpython

Когда я использую 'GetFirstChild (root)', я получаю дочерний узел 'b'. Но я хочу прочитать текст c. Любые указания на это указаны

ответ

0

Я использовал метод, подобный этому в прошлом. Это повторяется через каждый элемент в родительском узле и рекурсивно выводит каждый элемент с дочерними элементами.

def get_all_nodes(self, parent_node): 
    for child in parent_node.GetChildren(): 
     if self.ItemHasChildren(child): 
      yield child 
      for grandchild in self.get_all_nodes(child): 
       yield grandchild 

Edit: , чтобы каждый из элементов текста используется метод '' GetItemText

def get_all_nodes(self, parent_node): 
    for child in parent_node.GetChildren(): 
     if self.ItemHasChildren(child): 
      yield self.GetItemText(child) 
      for grandchild in self.get_all_nodes(child): 
       yield self.GetItemText(grandchild) 
+0

Спасибо, но он возвращает объекты генератора всех детей. Я хочу получить имена каждого из детей и сравнить – Ashu

+0

, обновил ли ответ ответ? – user2682863

+0

Он все еще возвращает объект генератора. Я не уверен, как получить имя от него. – Ashu