QML TableView(Qt_6_5_3_MinGW_64)

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

此属性包含视图中当前可见的最底部行。同用途的还有: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。

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   //同步视图: 指定是谁的标题栏
相关推荐
high20114 分钟前
【Java 基础】-- ArrayList 和 Linkedlist
java·开发语言
1nullptr7 分钟前
lua和C API库一些记录
开发语言·lua
Jerry Nan9 分钟前
Lua元表
开发语言·lua
?3333314 分钟前
CTFHub Web进阶-PHP-Bypass disable_function攻略
开发语言·安全·web安全·php
所以经济危机就是没有新技术拉动增长了15 分钟前
二、javascript的进阶知识
开发语言·javascript·ecmascript
Bubluu26 分钟前
浏览器点击视频裁剪当前帧,然后粘贴到页面
开发语言·javascript·音视频
AI人H哥会Java1 小时前
【Spring】基于XML的Spring容器配置——<bean>标签与属性解析
java·开发语言·spring boot·后端·架构
开心工作室_kaic1 小时前
springboot493基于java的美食信息推荐系统的设计与实现(论文+源码)_kaic
java·开发语言·美食
析木不会编程1 小时前
【C语言】动态内存管理:详解malloc和free函数
c语言·开发语言
神仙别闹1 小时前
基于Java2D和Java3D实现的(GUI)图形编辑系统
java·开发语言·3d