自定义视图类型对象
在Qt应用中,列表视图、表格视图、树状视图都是由抽象视图派生而来的,抽象视图作为一种视图的抽象实现,允许开发者由其派生出各种自定义的视图。以Qt提供的“Chart”样例(如下图)举例,它左侧为表格控件,但右侧的图表是由抽象视图派生而来的自定义视图组件。
在Qt中这类派生自抽象视图的自定义组件会被CukeTest一律当作自定义视图ItemView
控件处理。
事实上列表视图、表格视图和树状视图都是由抽象视图派生出来的,但是CukeTest对这些常用的视图做了支持,因此不会当作
ItemView
控件而是各自相对的控件处理。
自定义视图控件: ItemView
一种基础的数据显示视图的控件,列表控件、表格控件、树状控件都是由此控件派生得来。因此提供了一些数据视图的基础操作方法和属性方法。
自定义视图与列表、表格、树状三种视图的关系
从开头的介绍中,我们了解了列表、表格、树状三种视图也是由抽象视图派生而来的一种自定义视图。可以将自定义视图与另外三种视图的关系理解为:
三种视图继承了自定义视图的方法,并根据各自的特点对继承的方法进行了扩展,从而有了各不相同操作和属性方法。
类型文件定义
JavaScript
Python
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>;
}
class QItemView(QtControl):
def data() -> Union[List[str], List[List[str]]]
def select(, index: int) -> "QItemViewItem"
def selectedIndex() -> int
def rowCount() -> int
def columnCount() -> int
def scrollToTop() -> None
def scrollTo(, index: int) -> "QItemViewItem"
def scrollToBottom() -> None
data(): Promise<string[][]>
获取视图中的所有文本内容,并以二维数组的形式返回。
- 返回值:
Promise<string[][]>
类型,即二维的字符串数组。
select(index): Promise<ItemViewItem>
点击选中并返回指定index
位置的对象。
- index:
number
类型,视图内目标对象的index
值,通常由selectedIndex()方法获取。 - 返回值:
Promise<ItemViewItem>
类型,即目标的自动化对象。
selectedIndex(): Promise<number>
当前选中对象在视图中的index
值。
- 返回值:
Promise<number>
类型,即目标的index
值。
rowCount(): Promise<number>
获取视图的行数。如果表格含有未被加载的部分,则只会计算已加载的行数。
- 返回值:
Promise<number>
,异步的返回number
类型的结果。
columnCount(): Promise<number>
获取视图的列数。
- 返回值:
Promise<number>
,异步的返回number
类型的结果。
scrollToTop(): Promise<void>
滚动到视图顶部。
- 返回值: 不返回任何值的异步方法。
scrollTo(index): Promise<ItemViewItem>
滚动到目标index
位置,并返回该对象。
- index:
number
类型,视图内目标对象的index
值,通常由selectedIndex()方法获取。 - 返回值:
Promise<ItemViewItem>
,即异步的返回目标位置的对象。
scrollToBottom(): Promise<void>
滚动到视图底部。
- 返回值: 不返回任何值的异步方法。
自定义视图单元控件: ItemViewItem
自定义视图中的数据呈现出来的单元控件。
类型文件定义
下面是自定义视图单元控件的类型文件定义:
JavaScript
Python
export interface IQItemViewItem extends IQtControl {
value(): Promise<string>;
select(): Promise<void>;
editable(): Promise<boolean>;
selected(): Promise<boolean>;
}
class QItemViewItem(QtControl):
def value() -> str
def select() -> None
def editable() -> bool
def selected() -> bool
对象操作API
value(): Promise<string>
获取目标单元内的值。
- 返回值:
string
类型,目标单元中的值。
select(): Promise<void>
选中目标单元。
- 返回值: 不返回任何值的异步方法。
editable(): Promise<boolean>
目标单元是否可以被编辑,可编辑为true
,不可编辑为false
。
- 返回值:
boolean
类型,是否可编辑。
selected(): Promise<boolean>
目标单元的选中情况,已选中为true
,未选中(折叠)为false
。
- 返回值:
boolean
类型,是否已选中。