wxpython 根据item的名字找到tree_ctrl对应的节点

业务场景,需要在一个tree_ctrl中找到一个节点,并且给该节点添加子节点

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, '已有节点', tree.GetRootItem())
if result.IsOk():
    print('We have a match!')
    new_item = tree.AppendItem(result , "新节点")
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题量有点多,建议Ctrl + F题号或题目哦~ 二叉树的遍历(前序遍历,中序遍历,后序遍历)[144] Binar...
    野狗子嗷嗷嗷阅读 13,030评论 2 37
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,281评论 19 139
  • 我是一个从来也不玩游戏的人,自从2015年的7月,我认识了天黑写作团,我玩这个游戏玩上了瘾。不仅每天写五百字,还改...
    赛北熊在重庆阅读 2,415评论 3 2
  • 茄子是很百搭的食物,烧法百变,各有千秋。 但对烧菜人的手艺要求极高,加油加料,最难拿捏的是“度”。 因此擅长烧茄子...
    蝶舞芙蓉阅读 3,440评论 0 4
  • 在开始今天的基础课程学习前,先开个小差,说点题外话。 前几天我一个朋友跟我说:“你现在写的课程会不会太基础,太简单...
    颜淑阅读 13,956评论 9 26

友情链接更多精彩内容