- 表格类型对象
- 表格控件: Table
- 类型文件定义
- getItem(rowIndex, colIndex): TableItem
- findItem(text: string): Promise<IQTableItem | null>
- scrollTo(rowIndex, colIndex): Promise<void>
- scrollToBottom(): Promise<void>
- setCellValue(rowIndex, columnNameOrIndex, value): Promise<void>
- cellValue(rowIndex, columnNameOrIndex): Promise<string>
- columnHeaders(): Promise<string[]>
- data(): Promise<string[][]>
- rowData(rowIndex): Promise<string[]>
- rowCount(): Promise<number>
- columnCount(): Promise<number>
- 类型文件定义
- 单元格控件: TableItem
- 表格控件: Table
表格类型对象
针对Qt中的表格和单元格提供的对象,CukeTest提供了Table
和TableItem
两个控件。并且围绕了表格相关的控件提供了操作表格数据的API,无论是获取、编辑能够满足。类型文件如下:
针对表格控件还提供了相应的演练——演练:操作Qt应用中的Table,能够大大加深对于API的理解程度。
表格控件: Table
用于描述表格视图控件的对象类型——Table
,由于是Qt的一种视图组件,能够改变排序之类的显示效果,作为一种单元格的复合容器而存在的。
类型文件定义
export interface IQTable extends IQtControl {
getItem(rowIndex: number, columnInndex: number): IQTableItem;
findItem(text: string): Promise<IQTableItem | null>;
scrollTo(rowIndex: number, columnIndex:number): Promise<void>;
scrollToBottom(): Promise<void>;
cellValue(rowIndex: number, columnNameOrIndex: number | String): Promise<string>;
setCellValue(rowIndex: number, columnNameOrIndex: number | String, value: String): Promise<void>;
columnHeaders(): Promise<string[]>;
data(): Promise<string[][]>;
rowData(rowIndex: number): Promise<string[]>
rowCount(): Promise<number>;
columnCount(): Promise<number>;
}
getItem(rowIndex, colIndex): TableItem
获取指定行列位置的单元格对象。
- rowIndex:
number
类型,代表目标单元格的行位置索引,从0开始计算位置; - colIndex:
number
类型,代表目标单元格的列位置索引,从0开始计算位置; - 返回值:
TableItem
类型,即目标单元格控件类型的自动化对象,如果行列位置对应的单元格无效的话,在调用后会出现1003: ObjectNotExist
的错误。
findItem(text: string): Promise<IQTableItem | null>
根据名称搜索目标单元格,返回目标单元格的自动化对象,如果没有搜索到则返回null
。
- text:
string
类型,期望目标单元格的内容或者文本; - 返回值:
Promise<IQTableItem>
或Promise<null>
类型,异步的搜索应用中的目标单元格,如果没有搜索到则返回null
。
scrollTo(rowIndex, colIndex): Promise<void>
滚动到目标索引位置。如果目标位置还未加载,会一直加载到目标索引位置加载为止。
- rowIndex:
number
类型,代表目标单元格的行位置索引,从0开始计算位置; - colIndex:
number
类型,代表目标单元格的列位置索引,从0开始计算位置; - 返回值: 不返回任何值的异步方法。
scrollToBottom(): Promise<void>
滚动到表格底部。
- 返回值: 不返回任何值的异步方法。
setCellValue(rowIndex, columnNameOrIndex, value): Promise<void>
编辑目标行列单元格的值,列位置也可以传入字符串,如果这么做,则会在表头中寻找相应的列位置。
- rowIndex:
number
类型,代表目标单元格的行位置索引,从0开始计算位置; - colNameOrIndex:
number
类型或者string
类型,代表目标单元格的列位置索引,从0开始计算位置;也可以传入表头中目标列的名字,比如”Name”、’ID”之类的。 - value:
string
类型,期望的单元格值。 - 返回值: 不返回任何值的异步方法。如果行列位置超出,或者传入的列名不存在,则会抛出
1006: OutOfRange
。
cellValue(rowIndex, columnNameOrIndex): Promise<string>
获取目标行列单元格的值,可以理解为setCellValue()
方法相对的Getter
方法。
- rowIndex:
number
类型,代表目标单元格的行位置索引,从0开始计算位置; - colNameOrIndex:
number
类型或者string
类型,代表目标单元格的列位置索引,从0开始计算位置;也可以传入表头中目标列的名字,比如”Name”、’ID”之类的。 - 返回值:
Promise<string>
类型,异步的返回string
类型的结果,无论目标单元格内是什么内容。如果行列位置超出,或者传入的列名不存在,则会抛出1006: OutOfRange
。
columnHeaders(): Promise<string[]>
获取表头的内容,并以字符串数组的形式返回。
- 返回值:
Promise<string[]>
类型,异步的返回string
类型的数组,无论表头中是什么内容。
data(): Promise<string[][]>
获取表格中的所有内容,并以二维数组的形式返回。
- 返回值:
Promise<string[][]>
类型,即二维的字符串数组。
假如表格数据如下:
学号 | 姓名 | 性别 |
---|---|---|
0001 | 小王 | 男 |
0002 | 小明 | 男 |
0003 | 小红 | 女 |
那么data()
方法返回的数组如下:
[
['0001', '小王', '男'],
['0002', '小明', '男'],
['0003', '小红', '女']
]
rowData(rowIndex): Promise<string[]>
获取目标行的数据,以字符串数组形式返回。
- rowIndex:
number
类型,代表目标单元格的行位置索引,从0开始计算位置; - 返回值:
Promise<string[]>
类型,异步的返回string
类型的数组,无论目标单元格内是什么内容。如果行列位置超出,或者传入的列名不存在,则会抛出1006: OutOfRange
。
rowCount(): Promise<number>
获取表的行数。如果表格含有未被加载的部分,则只会计算已加载的行数。
- 返回值:
Promise<number>
,异步的返回number
类型的结果。
columnCount(): Promise<number>
获取表的列数,值与columnHeaders()
方法返回的数组长度一致。
- 返回值:
Promise<number>
,异步的返回number
类型的结果。
单元格控件: TableItem
针对单元格控件的定义和方法。
类型文件定义
export interface IQTableItem extends IQtControl {
select(): Promise<void>;
scrollIntoView(): Promise<void>;
set(value: String): Promise<void>;
value(): Promise<string>;
rowIndex(): Promise<number>;
columnIndex(): Promise<number>;
}
对象操作API
下面是TableItem
控件的对象方法。
select(): Promise<void>
选中目标单元格。
- 返回值: 不返回任何值的异步方法。
scrollIntoView(): Promise<void>
滚动到目标单元格位置。
- 返回值: 不返回任何值的异步方法。
set(value): Promise<void>
直接修改单元格的值。
- value:
string
类型,期望的单元格值。 - 返回值: 不返回任何值的异步方法。
value(): Promise<string>
直接修改单元格的值。
- 返回值:
string
类型,目标单元格中的值。
rowIndex(): Promise<number>
获取当前单元格的行索引位置。
- 返回值:
number
类型,单元格中的行索引位置。
columnIndex(): Promise<number>
获取当前单元格的行索引位置。
- 返回值:
number
类型,单元格中的列索引位置。