水平表头视图 QML 类型
导入语句 | import QtQuick.Controls |
继承 |
属性
详细描述
水平表头视图提供了一个样式化的表头。它可以用作独立视图或 TableView 的表头。
您可以将水平表头视图分配给 TableView 的 TableView::syncView 属性以为 TableView 添加一个表头。在滚动时,表头和表格将保持同步。
默认情况下,水平表头视图显示从 syncView 的 model 中获取的 header data。如果您不希望使用此模型,您可以将不同的模型分配给 model 属性。如果您分配了一个 QAbstractItemModel 模型,则将使用其头部数据。否则,将直接使用模型中的数据(例如,如果您分配了一个简单的字符串数组模型)。
注意: 为了显示 QAbstractItemModel 的头部数据,水平表头视图将内部将模型的头部数据包装在独立的代理模型中。此模型不与应用程序模型共享任何模型项。这意味着如果您调用诸如 index() 等函数,则返回的模型索引将属于代理模型而不是应用程序模型。
默认情况下,textRole 设置为 "display"
,这意味着将使用模型的 Qt::DisplayRole 中的数据。您可以将其设置为其他角色名称,以便显示该数据。
应用程序负责将表头放置在场景中的正确位置。您可以为单个 TableView 添加任意数量的表头,这可能在您想要在表格的四个边放置表头时很有用。
以下代码片段显示了如何向表格视图添加水平和垂直表头视图:
import QtQuick import QtQuick.Controls import Qt.labs.qmlmodels ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("HeaderView") Rectangle { anchors.fill: parent // The background color will show through the cell // spacing, and therefore become the grid line color. color: Qt.styleHints.appearance === Qt.Light ? palette.mid : palette.midlight HorizontalHeaderView { id: horizontalHeader anchors.left: tableView.left anchors.top: parent.top syncView: tableView clip: true } VerticalHeaderView { id: verticalHeader anchors.top: tableView.top anchors.left: parent.left syncView: tableView clip: true } TableView { id: tableView anchors.left: verticalHeader.right anchors.top: horizontalHeader.bottom anchors.right: parent.right anchors.bottom: parent.bottom clip: true columnSpacing: 1 rowSpacing: 1 model: TableModel { TableModelColumn { display: "name" } TableModelColumn { display: "color" } rows: [ { "name": "cat", "color": "black" }, { "name": "dog", "color": "brown" }, { "name": "bird", "color": "white" } ] } delegate: Rectangle { implicitWidth: 100 implicitHeight: 20 color: palette.base Label { text: display } } } }
水平表头视图(HorizontalHeaderView)默认将 resizableColumns 设置为 true
。
另请参阅垂直表头视图(VerticalHeaderView)。
属性文档
model : QVariant |
此属性保存为水平表头视图提供数据的模型。
若未显式设置模型,则在设置了 syncView 后,表头将使用 syncView 的模型。
如果模型是 QAbstractTableModel,将访问其 horizontalHeaderData()。
如果模型是除了 QAbstractTableModel 以外的 QAbstractItemModel,将访问模型的数据()。
否则,行为与设置 TableView::model 相同。
另请参阅TableView,model 和 QAbstractTableModel。
syncView : TableView |
textRole : QString |
此属性保存用于在每个表头单元格中显示文本的模型角色。
当模型具有多个角色时,可以通过设置 textRole 来确定应显示哪个角色。
如果模型是 QAbstractItemModel,则默认为 "display";否则为空。
如果模型的重载 roleNames() 不提供在 textRole 中指定的角色,则会给出一条警告。可以通过设置 textRole 来忽略警告。
© 2024 The Qt Company Ltd. 本文档的贡献权归各自所有者所有。本文档的提供受 GNU自由文档许可证版本1.3 的约束,由自由软件基金会发布。Qt及其相应标志是芬兰及全球其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。