自定义视图类型对象
在Qt应用中,列表视图、表格视图、树状视图都是由抽象视图派生而来的,抽象视图作为一种视图的抽象实现,允许开发者由其派生出各种自定义的视图。以Qt提供的“Chart”样例(如下图)举例,它左侧为表格控件,但右侧的图表是由抽象视图派生而来的自定义视图组件。
在Qt中这类派生自抽象视图的自定义组件会被CukeTest一律当作自定义视图ItemView
控件处理。
事实上列表视图、表格视图和树状视图都是由抽象视图派生出来的,但是CukeTest对这些常用的视图做了支持,因此不会当作
ItemView
控件而是各自相对的控件处理。
自定义视图与列表、表格、树状三种视图的关系
从开头的介绍中,我们了解了列表、表格、树状三种视图也是由抽象视图派生而来的一种自定义视图。并且,从自定义视图的类型定义,如下:
export interface IQItemView extends IQtControl {
data(): Promise<string[] | string[][]>;
select(index: number): Promise<void>;
selectedIndex(): Promise<number>;
rowCount(): Promise<number>;
columnCount(): Promise<number>;
scrollToTop(): Promise<void>;
scrollTo(index: number): Promise<void>;
scrollToBottom(): Promise<void>;
}
export interface IQItemViewItem extends IQtControl {
value(): Promise<string>;
select(): Promise<void>;
}
可以了解到,列表、表格、树状三种视图所提供的很多方法是与自定义视图相似的。
可以讲自定义视图与另外三种视图的关系理解为:
三种视图继承了自定义视图的方法,并根据各自的特点对继承的方法进行了扩展,从而有了各不相同操作和属性方法。