wxPython:TreeCtrl:如何按名称获取树项?

bob*_*ane 1 python tree wxpython

我正在使用wxPython并获得了一些带有一些项目的树.现在我需要一个函数,它按名称给我树项目对象.

例如:item = self.GetItemByName("MyStories")

我在文档中找不到这样的功能.

有没有人有任何想法?

rob*_*jpg 5

这是查找具有特定标签的第一个树项的一种方法:

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!')
Run Code Online (Sandbox Code Playgroud)

但是根据你在树中显示的内容,可能有一种更简单的方法来处理它.TreeCtrl已经提供了在填充树时在树项和其他对象之间创建引用的工具,并且dict查找比我刚输入的更快更清晰.