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() | 双击切换展开/折叠 |