Bootstrap

QML TableView(Qt_6_5_3_MinGW_64)

P1:alternatingRows : bool

P1就是Properties 1,第1个属性的意思 ~ 后面不再赘述 ~

作用:行背景色是否交替显示

background: Rectangle {
     color: control.row === control.tableView.currentRow
            ? control.palette.highlight
            : (control.tableView.alternatingRows && control.row % 2 !== 0
            ? control.palette.alternateBase
            : control.palette.base)
 }

P2:animate : bool

可以设置此属性来控制TableView是否应为contentItem(contentX和contentY)设置动画。positionViewAtCell() 和用键盘导航当前索引时使用它。默认值为true。如果设置为false,任何正在进行的动画都将立即停止。

P3:bottomRow : int

此属性包含视图中当前可见的最底部行。同用途的还有:topRowleftColumnrightColumn

P4:columnSpacing : real

此属性保存列之间的间距。默认值为0。

P5:columnWidthProvider : var

此属性可以包含一个函数,该函数返回模型中每一列的列宽每当TableView需要知道特定列的宽度时,就会调用它。该函数接受一个参数column,TableView需要知道其宽度。
从Qt 5.13开始,如果你想隐藏一个特定的列,你可以为该列返回0宽度。如果返回负数,TableView将根据委托项计算宽度。

注意:当要加载列时(或进行布局时),通常会调用columnWidthProvider两次。首先,要知道列是否可见,是否应该加载。其次,在加载所有项目后确定列的宽度。如果需要根据委托项的大小计算列宽,则需要等待第二次调用,此时所有项都已加载。您可以通过调用isColumnLoaded(column)来检查这一点,如果还不是这样,只需返回-1即可。

另请参见rowHeightProvider、isColumnLoaded()以及行高度和列宽。

P6: columns : int

此属性保存表中的列数。

注意:列数通常等于模型中的列数,但在处理完所有挂起的模型更改之前,可能会暂时不同。

如果模型是列表,则列将为1。
此属性是只读的。

P7: contentHeight : real

此属性包含容纳数据模型中行数所需的表高度。这通常与视图的高度不同,这意味着表的高度可能大于或小于视口高度。由于TableView在不加载模型中的所有行的情况下无法始终知道表的确切高度,因此contentHeight通常是基于最初加载的表的估计值。
如果知道表的高度,请为contentHeight赋值,以避免对TableView进行不必要的计算和更新。
另请参见 contentWidth 和rowHeightProvider。 

P8: currentColumn : int

此只读属性保存视图中包含当前项的列。如果没有当前项目,则为-1。

注意:为了让TableView报告当前列是什么,您需要为selectionModel分配一个ItemSelectionModel。

另请参见当前行、选择模型和选择项目。

P9: delegate : Component

委托提供了一个模板,定义了视图实例化的每个单元格项。模型索引作为可访问的索引属性公开。这同样适用于行和列。根据数据模型的类型,模型的属性也可用。
代理应使用implicitWidth和implicitHeight指定其大小。TableView根据该信息布局项目。显式的宽度或高度设置将被忽略并覆盖。
在委托内部,您可以选择添加以下一个或多个属性。TableView修改这些属性的值,以通知委托它所处的状态。委托可以使用此属性根据自己的状态以不同的方式呈现自己。

必需属性bool current-如果委托是当前的,则为true。
必填属性bool selected-如果选择了委托,则为true。
必需的属性bool editing-如果正在编辑委托,则为true。

 delegate: Rectangle {
     required property bool current
     required property bool selected
     border.width: current ? 1 : 0
     color: selected ? palette.highlight : palette.base
 }

P10: editTriggers : enumeration

此属性包含用户开始编辑单元格的不同方式。它可以是以下值的组合:

TableView.NoEditTriggers

用户不能触发单元格的编辑。设置此值后,TableView将不会打开或关闭编辑委托作为对任何用户交互的响应。但是应用程序可以手动调用edit()和closeEditor()。

TableView.SingleTapped

 用户可以通过单次点击来编辑单元格。

TableView.DoubleTapped

 用户可以通过双击来编辑单元格。

TableView.SelectedTapped

 用户可以通过点击来编辑所选单元格。

TableView.EditKeyPressed

 -用户可以通过按下其中一个编辑键来编辑当前单元格。编辑键由操作系统决定,但通常是Qt::Key_Enter和Qt::Key_Return。

TableView.AnyKeyPressed

 -用户可以通过按下除单元格导航键之外的任何键来编辑当前单元格。按下的键也会发送到编辑委托内的焦点对象。

P11: keyNavigationEnabled : bool

可以设置此属性来控制用户是否可以使用键盘更改当前索引。默认值为true。

注意:为了使TableView支持键盘导航,您需要为selectionModel分配一个ItemSelectionModel。

P12: model : model

此属性包含为表提供数据的模型。
该模型提供了用于在视图中创建项目的数据集。模型可以直接在QML中使用TableModel、ListModel、ObjectModel创建,也可以由自定义的C++模型类提供。C++模型必须是QAbstractItemModel的子类或简单列表。

P13: pointerNavigationEnabled : bool

此属性可以设置为控制用户是否可以使用鼠标或触摸更改当前索引。默认值为true。
此属性在Qt 6.4中引入。

P14: resizableColumns : bool

此属性保存是否允许用户通过在单元格之间拖动来调整列的大小默认值为false。
此属性在Qt 6.5中引入。


P15: reuseItems : bool

他的属性决定了是否应该重用从委托实例化的项。如果设置为false,则销毁当前共享的任何项目。
另请参见重用项、TableView::pooled和TableView::reused。 

P16: selectionBehavior : enumeration

此属性保存用户是否可以选择单个单元格、行或列。

TableView.SelectionDisabled

用户不能执行选择。

TableView.SelectCells

用户可以选择单个单元格。(默认)

TableView.SelectRows

用户只能选择行。

TableView.SelectColumns

用户只能选择列。

P17: selectionModel : ItemSelectionModel

可以设置此属性来控制哪些委托项应显示为选中,哪些项应显示为主选项。如果委托定义了必填属性bool selected,TableView将使其与选择模型中相应模型项的选择状态保持同步。如果委托定义了必需的属性bool current,TableView将使其与selectionModel currentIndex保持同步。

P18: syncDirection : Qt::Orientations

如果在TableView上设置了syncView,则此属性控制两个表的滑动方向的同步。默认值为Qt。水平|数量。垂直,这意味着如果你在任何一个方向上轻击任何一张桌子,另一张桌子也会在同一方向上以相同的量轻击。
此属性和syncView可用于使两个表视图在轻弹时平滑同步,而不管不同的过冲/下冲、速度、加速/减速或反弹动画等。
一个典型的用例是让几个标题随着表格一起滚动。
另请参见syncView。 

P19: syncView : TableView 

如果将TableView的此属性设置为另一个TableView,则两个表将根据syncDirection在轻拂、列宽/行高和间距方面同步。
如果syncDirection包含Qt。水平方向上,当前tableView的列宽、列间距和水平轻拂移动与syncView同步。
如果syncDirection包含Qt。垂直方向上,当前tableView的行高、行间距和垂直轻拂移动与syncView同步。
另请参见syncDirection。 

解释有些抽象,比如标题栏

syncView: tableView_4   //同步视图: 指定是谁的标题栏
;