P1:alternatingRows : bool
P1就是Properties 1,第1个属性的意思 ~ 后面不再赘述 ~
**作用:**行背景色是否交替显示
javascript
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
此属性包含视图中当前可见的最底部行。同用途的还有:topRow、leftColumn、rightColumn
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。
javascript
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。
解释有些抽象,比如标题栏
javascript
syncView: tableView_4 //同步视图: 指定是谁的标题栏