表格类型对象

针对Qt中的表格和单元格提供的对象,CukeTest提供了TableTableItem两个控件。并且围绕了表格相关的控件提供了操作表格数据的API,无论是获取、编辑能够满足。类型文件如下:

针对表格控件还提供了相应的演练——演练:操作Qt应用中的Table,能够大大加深对于API的理解程度。

表格控件: Table

用于描述表格视图控件的对象类型——Table,由于是Qt的一种视图组件,能够改变排序之类的显示效果,作为一种单元格的复合容器而存在的。

类型文件定义

  1. export interface IQTable extends IQtControl {
  2. getItem(rowIndex: number, columnInndex: number): IQTableItem;
  3. findItem(text: string): Promise<IQTableItem | null>;
  4. scrollTo(rowIndex: number, columnIndex:number): Promise<void>;
  5. scrollToBottom(): Promise<void>;
  6. cellValue(rowIndex: number, columnNameOrIndex: number | String): Promise<string>;
  7. setCellValue(rowIndex: number, columnNameOrIndex: number | String, value: String): Promise<void>;
  8. columnHeaders(): Promise<string[]>;
  9. data(): Promise<string[][]>;
  10. rowData(rowIndex: number): Promise<string[]>
  11. rowCount(): Promise<number>;
  12. columnCount(): Promise<number>;
  13. }

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()方法返回的数组如下:

  1. [
  2. ['0001', '小王', '男'],
  3. ['0002', '小明', '男'],
  4. ['0003', '小红', '女']
  5. ]

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

针对单元格控件的定义和方法。

类型文件定义

  1. export interface IQTableItem extends IQtControl {
  2. select(): Promise<void>;
  3. scrollIntoView(): Promise<void>;
  4. set(value: String): Promise<void>;
  5. value(): Promise<string>;
  6. rowIndex(): Promise<number>;
  7. columnIndex(): Promise<number>;
  8. }

对象操作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类型,单元格中的列索引位置。