自定义视图类型对象

在Qt应用中,列表视图、表格视图、树状视图都是由抽象视图派生而来的,抽象视图作为一种视图的抽象实现,允许开发者由其派生出各种自定义的视图。以Qt提供的“Chart”样例(如下图)举例,它左侧为表格控件,但右侧的图表是由抽象视图派生而来的自定义视图组件。
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类型,是否已选中。

results matching ""

    No results matching ""