树(Tree)

针对树控件以及树中的节点,CukeTest提供了 TreeTreeItem 两个控件。Tree控件代表整棵树,而TreeItem代表树中的各个节点。

除下面列出的树控件特有的方法,您还可以使用通用控件方法对树控件进行更灵活的操作。

树状视图控件: Tree

树控件主要通过传入itemPath来操作相关节点。由于节点的名称并不唯一,因此将节点名称作为识别属性是不可靠的,模型管理器提供了一个描述节点位置的识别属性——itemPath,可以点击itemPath属性查看具体介绍。

方法名 描述
columnHeaders 获取树的列标题。
getItem 获取指定路径的树节点对象。
rowData 获取指定路径节点的数据。
childCount 获取树的子节点数量。
children 获取树的所有子节点。
columnCount 获取树的总列数。
scrollToTop 滚动到树的顶部。
scrollToBottom 滚动到树的底部。

类型定义

JavaScript
Python
export interface IAtTree extends IAtControl {
    columnHeaders(): Promise<string[]>;
    getItem(itemPath: ItemPath): IAtTreeItem;
    rowData(itemPath: ItemPath): Promise<string[]>;
    childCount(): Promise<number>;
    children(): Promise<IAtTreeItem[]>;
    columnCount(): Promise<number>;
    scrollToTop(): Promise<void>;
    scrollToBottom(): Promise<void>;
}
export type ItemPath = (number | string | [number, number])[];
class AtTree(AtControl):
    def columnHeaders() -> List[str]
    def getItem(itemPath: ItemPath) -> AtTreeItem
    def rowData(itemPath: ItemPath) -> List[str]
    def childCount() -> int
    def children() -> List[AtTreeItem]
    def columnCount() -> int
    def scrollToTop() -> None
    def scrollToBottom() -> None

columnHeaders()

获取树的列标题。

返回值:

  • Promise<string[]>类型,异步返回树的列标题数组。

示例代码

获取树的列标题:

JavaScript
Python
let headers = await model.getTree("tree").columnHeaders();
console.log(`列标题: ${headers.join(", ")}`);
headers = model.getTree("tree").columnHeaders()
print(f"列标题: {', '.join(headers)}")

getItem(itemPath)

获取指定路径的树节点对象。

参数:

  • itemPath: ItemPath类型,表示树节点路径的数组,支持数字、字符串或者[数字, 数字]形式。

返回值:

  • IAtTreeItem类型,返回指定路径的树节点对象。

示例代码

获取指定路径的树节点对象:

JavaScript
Python
let item = model.getTree("tree").getItem([0, "节点名", [2, 3]]);
item = model.getTree("tree").getItem([0, "节点名", [2, 3]])

rowData(itemPath)

获取指定路径节点的数据。

参数:

  • itemPath: ItemPath类型,表示树节点路径的数组,支持数字、字符串或者[数字, 数字]形式。

返回值:

  • Promise<string[]>类型,异步返回指定路径节点的数据数组。

示例代码

获取指定路径节点的数据:

JavaScript
Python
let data = await model.getTree("tree").rowData([0, "节点名"]);
console.log(`节点数据: ${data.join(", ")}`);
data = model.getTree("tree").rowData([0, "节点名"])
print(f"节点数据: {', '.join(data)}")

childCount()

获取树的子节点数量。

返回值:

  • Promise<number>类型,异步返回树的子节点数量。

示例代码

获取树的子节点数量:

JavaScript
Python
let count = await model.getTree("tree").childCount();
console.log(`子节点数量: ${count}`);
count = model.getTree("tree").childCount()
print(f"子节点数量: {count}")

children()

获取树的所有子节点。

返回值:

  • Promise<IAtTreeItem[]>类型,异步返回树的所有子节点对象数组。

示例代码

获取树的所有子节点:

JavaScript
Python
let children = await model.getTree("tree").children();
children = model.getTree("tree").children()

columnCount()

获取树的总列数。

返回值:

  • Promise<number>类型,异步返回树的总列数。

示例代码

获取树的总列数:

JavaScript
Python
let count = await model.getTree("tree").columnCount();
console.log(`总列数: ${count}`);
count = model.getTree("tree").columnCount()
print(f"总列数: {count}")

scrollToTop()

滚动到树的顶部。

返回值:

  • Promise<void>类型。

示例代码

滚动到树的顶部:

JavaScript
Python
await model.getTree("tree").scrollToTop();
model.getTree("tree").scrollToTop()

scrollToBottom()

滚动到树的底部。

返回值:

  • Promise<void>类型。

示例代码

滚动到树的底部:

JavaScript
Python
await model.getTree("tree").scrollToBottom();
model.getTree("tree").scrollToBottom()


树节点控件: TreeItem

TreeItem控件代表树中的各个节点,可以对其进行展开、折叠、选中等操作,此外,还可以获取其子节点、数据等信息。以下是TreeItem控件的详细方法和属性介绍。

方法名 描述
expand 展开树节点。
collapse 折叠树节点。
data 获取树节点的数据。
set 设置树节点的数据。
expandable 判断树节点是否可展开。
expanded 判断树节点是否已展开。
childCount 获取树节点的子节点数量。
children 获取树节点的所有子节点。

类型定义

JavaScript
Python
export interface IAtTreeItem extends IAtControl {
    expand(): Promise<void>;
    collapse(): Promise<void>;
    data(roleId?: number): Promise<string>;
    set(value: string): Promise<void>;
    expandable(): Promise<boolean>;
    expanded(): Promise<boolean>;
    childCount(): Promise<number>;
    children(): Promise<IAtTreeItem[]>;
}

export enum ExpandCollapseState {
    collapsed = 0,
    expanded = 1,
    partiallyExpanded = 2,
    leafNode = 3,
    unknown = -1
}
class AtTreeItem(AtControl):
	def expand() -> None
	def collapse() -> None
	def data(roleId: Optional[int]=None) -> str
	def set(value: str) -> None
	def expandable() -> bool
	def expanded() -> bool
	def childCount() -> int
	def children() -> List[AtTreeItem]

expand()

展开当前树节点。

返回值:

  • Promise<void>类型,异步操作。

示例代码

展开树节点:

JavaScript
Python
await model.getTreeItem("treeitem").expand();
model.getTreeItem("treeitem").expand()

collapse()

折叠当前树节点。

返回值:

  • Promise<void>类型,异步操作。

示例代码

折叠树节点:

JavaScript
Python
await model.getTreeItem("treeitem").collapse();
model.getTreeItem("treeitem").collapse()

data(roleId?: number)

获取当前树节点的数据。

参数:

  • roleId: number类型,(可选) 数据角色ID,用于获取特定类型的数据。

返回值:

  • Promise<string>类型,异步返回树节点的数据。

示例代码

获取树节点的数据:

JavaScript
Python
let nodeData = await model.getTreeItem("treeitem").data();
console.log(`节点数据: ${nodeData}`);
nodeData = model.getTreeItem("treeitem").data()
print(f"节点数据: {nodeData}")

set(value: string)

设置当前树节点的数据。

参数:

  • value: string类型,设置的值。

返回值:

  • Promise<void>类型,异步操作。

示例代码

设置树节点的数据:

JavaScript
Python
await model.getTreeItem("treeitem").set("新值");
model.getTreeItem("treeitem").set("新值")

expandable()

判断当前树节点是否可展开。

返回值:

  • Promise<boolean>类型,异步返回true表示可以展开,false表示不能展开。

示例代码

判断树节点是否可展开:

JavaScript
Python
let isExpandable = await model.getTreeItem("treeitem").expandable();
console.log(`可展开: ${isExpandable}`);
isExpandable = model.getTreeItem("treeitem").expandable()
print(f"可展开: {isExpandable}")

expanded()

判断当前树节点是否已展开。

返回值:

  • Promise<boolean>类型,异步返回true表示已展开,false表示未展开。

示例代码

判断树节点是否已展开:

JavaScript
Python
let isExpanded = await model.getTreeItem("treeitem").expanded();
console.log(`已展开: ${isExpanded}`);
isExpanded = model.getTreeItem("treeitem").expanded()
print(f"已展开: {isExpanded}")

childCount()

获取当前树节点的子节点数量。

返回值:

  • Promise<number>类型,异步返回子节点的数量。

示例代码

获取树节点的子节点数量:

JavaScript
Python
let count = await model.getTreeItem("treeitem").childCount();
console.log(`子节点数量: ${count}`);
count = model.getTreeItem("treeitem").childCount()
print(f"子节点数量: {count}")

children()

获取当前树节点的所有子节点。

返回值:

  • Promise<IAtTreeItem[]>类型,异步返回子节点的数组。

示例代码

获取树节点的所有子节点:

JavaScript
Python
let childrenItems = await model.getTreeItem("treeitem").children();
childrenItems = model.getTreeItem("treeitem").children()

results matching ""

    No results matching ""