Skip to content

API: UIA Tree ​

树形控件(Tree)用于显示层次结构数据,常见于:

  • 文件夹树
  • 组织架构图
  • 分类目录
  • 注册表编辑器

查找树控件 ​

说明:树控件通常有名称,可以通过名称查找。

python
from wingman import uia

# 查找名为"文件夹树"的树控件
tree = uia.find_by_name("文件夹树")
if tree:
    print("找到树控件")

展开/折叠节点 ​

展开节点 ​

说明:展开树节点以显示其子节点。

python
from wingman import uia, util

tree = uia.find_by_name("文件夹树")
if tree:
    # 查找并展开"文档"节点
    folder = uia.find_by_name("文档")
    if folder:
        folder["expand"]()
        print("已展开文档节点")
        util.sleep(200)  # 等待子节点加载

折叠节点 ​

说明:折叠树节点以隐藏其子节点。

python
from wingman import uia

folder = uia.find_by_name("文档")
if folder:
    folder["collapse"]()
    print("已折叠文档节点")

双击切换 ​

说明:双击树节点可以切换展开/折叠状态。

python
from wingman import uia

folder = uia.find_by_name("文档")
if folder:
    # 双击切换展开/折叠
    folder["double_click"]()
    print("已双击切换状态")

遍历树节点 ​

递归遍历整个树 ​

说明:递归遍历树的所有节点,打印完整的树结构。

python
from wingman import uia

def traverse_tree(element, depth=0):
    """递归遍历树节点"""
    indent = "  " * depth
    info = element["get_info"]()
    name = info.get('name', '(无名称)')
    prefix = "└─" if depth > 0 else ""

    print(f"{indent}{prefix}{name}")

    # 递归处理子节点
    children = element["get_children"]()
    for child in children:
        traverse_tree(child, depth + 1)

# 使用
tree = uia.find_by_name("文件夹树")
if tree:
    traverse_tree(tree)

获取直接子节点 ​

说明:只获取树的第一层子节点,不递归。

python
from wingman import uia

tree = uia.find_by_name("文件夹树")
if tree:
    # 获取直接子节点
    children = tree["get_children"]()

    print(f"根节点共有 {len(children)} 个子节点:")
    for child in children:
        info = child["get_info"]()
        print(f"  - {info.get('name', '(无名称)')}")

查找并选择节点 ​

说明:按名称查找树节点,然后点击选中。

python
from wingman import uia

# 直接按名称查找树节点
node = uia.find_by_name("目标文件.txt")
if node:
    # 可能需要先展开父节点才能找到
    node["click"]()
    print("已选中:目标文件.txt")

可用接口 ​

Python 方法Lua 方法说明
expand():expand()展开节点
collapse():collapse()折叠节点
is_expanded():is_expanded()检查是否已展开
get_children():get_children()获取子节点
click():click()点击节点
double_click():double_click()双击切换展开/折叠