列表类型对象

针对列表控件以及列表项控件,模型管理器提供了ListListItem两个对象类型。由于列表视图属于复合结构,因此CukeTest提供了很多方法,可以结合表格视图Table和树视图Tree理解。

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

列表视图控件: List

用于描述列表视图控件的对象类型——List,由于是Qt的一种视图组件,作为一种列表项的容器而存在的。

类型文件中的定义

  1. export interface IQList extends IQtControl {
  2. getItem(rowIndex: number): IQListItem;
  3. select(index: number): Promise<void>;
  4. selectedIndex(): Promise<number>;
  5. findItem(text: string): Promise<IQListItem | null>;
  6. data(): Promise<string[]>;
  7. itemCount(): Promise<number>;
  8. scrollToTop(): Promise<void>;
  9. scrollTo(index: number): Promise<void>;
  10. scrollToBottom(): Promise<void>;
  11. }

对象操作API

下面是针对List控件的对象操作API。

getItem(rowIndex): IQListItem

获取指定索引位置的列表项对应的自动化对象。

  • rowIndex: number型,代表列表项处在列表中的第几项。如果是第一项则为0。
  • 返回值: IQListItem对象,即ListItem控件的自动化对象。注意这是一个同步方法,不需要await关键字,也不会匹配应用中的控件。只有在执行对象上的异步方法时才会进行匹配。

findItem(text: string): Promise<IQListItem | null>

根据名称搜索目标列表项,返回目标列表项的自动化对象,如果没有搜索到则返回null

  • text: string类型,期望目标列表项的内容或者文本;
  • 返回值: Promise<IQListItem>Promise<null>类型,异步的搜索应用中的目标列表项,如果没有搜索到则返回null

select(index): Promise<void>

选中指定索引位置的列表项。

  • index: number型,代表列表项处在列表中的第几项。如果是第一项则为0。
  • 返回值: 不返回任何值的异步方法。

scrollToTop(): Promise<void>

滚动到列表顶部。

  • 返回值: 不返回任何值的异步方法。

scrollTo(index): Promise<void>

滚动到目标索引位置。如果目标位置还未加载,会一直加载到目标索引位置加载为止。

  • index: number型,代表列表项处在列表中的第几项。如果是第一项则为0。
  • 返回值: 不返回任何值的异步方法。

scrollToBottom(): Promise<void>

滚动到列表底部。这里的列表底部指的是已加载列表的底部,是为了避免非常长的列表带来的性能问题。

  • 返回值: 不返回任何值的异步方法。

data(): Promise<string[]>

获得列表视图中的数据并返回。如果列表视图采取了批次加载(或者可以理解为延迟加载方式),则只会获得已加载的数据,未加载的数据无法被获取到。

  • 返回值: Promise<string[]>类型,由列表选项值组成的字符串数组。需要使用await关键字取出其中的结果。

rowCount(): Promise<number>

获得列表视图中的选项数量。如果列表视图采取了批次加载(或者可以理解为延迟加载方式),则只会计算已加载的数据,未加载的数据不会被计入。

  • 返回值: Promise<number>类型,表示当前列表中的选项数量。需要使用await关键字取出其中的结果。

selectedIndex(): Promise<number>

获得列表视图中的选中选项的索引位置。

  • 返回值: Promise<number>类型,表示选中选项的索引位置。需要使用await关键字取出其中的结果。

列表项控件: ListItem

针对列表中的列表项控件,模型管理器提供了ListItem类型。与List对象的提供的操作列表项的方法(比如scrollTo()select()不同,列表项控件自身就包含了位置信息,因此它的方法都不需要额外再传入参数。

类型文件定义

  1. export interface IQListItem extends IQtControl {
  2. value(): Promise<string>;
  3. select(): Promise<void>;
  4. scrollIntoView(): Promise<void>;
  5. }

对象操作API

value(): Promise<string>

获得列表项的内容。

  • 返回值: Promise<string>类型,列表项的内容。需要使用await关键字取出其中的结果。

select(): Promise<void>

选中列表项。如果该项不在可视范围内,还会自动的滚动到该项所在的位置。

  • 返回值: 不返回任何值的异步方法。

scrollIntoView(): Promise<void>

滚动到列表项位置。

  • 返回值: 不返回任何值的异步方法。