Вот один из способов найти первый элемент дерева с определенной меткой:
def get_item_by_label(self, tree, search_text, root_item):
item, cookie = tree.GetFirstChild(root_item)
while item.IsOk():
text = tree.GetItemText(item)
if text.lower() == search_text.lower():
return item
if tree.ItemHasChildren(item):
match = self.get_item_by_label(tree, search_text, item)
if match.IsOk():
return match
item, cookie = tree.GetNextChild(root_item, cookie)
return wx.TreeItemId()
result = get_item_by_label(tree, 'MyStories', tree.GetRootItem())
if result.IsOk():
print('We have a match!')
Но в зависимости от того, что вы отображаете в дереве, возможно, есть более простой способ справиться с этим.TreeCtrl уже предоставляет инструменты для создания ссылок в обоих направлениях между элементами дерева и другими объектами при заполнении дерева, и поиск в режиме dict выглядит намного быстрее и чище, чем то, что я только что набрал.