VerticalHeaderView QML 类型

提供垂直头部视图,与 TableView 一起使用。 更多...

导入语句import QtQuick.Controls
继承

TableView

属性

详细描述

VerticalHeaderView 提供了一个带样式的表格头部。它可以用作独立的视图或作为 TableView 的头部。

您可以通过将 VerticalHeaderView 分配给 TableView::syncView 属性来为 TableView 添加头部。在快速翻页时,头部和表格将会保持同步。

默认情况下,VerticalHeaderView 会显示 头部数据 来自 同步视图的 模型。如果您不想使用此模型,您可以指定不同的模型给 model 属性。如果您指定的是一个 QAbstractItemModel 的模型,它的头部数据将被使用。否则,将直接使用模型中的数据(例如,如果您指定的是一个简单的字符串数组模型)。

注意:为了显示 QAbstractItemModel 的头部数据,VerticalHeaderView 将在内部将模型头部数据包装在一个独立的代理模型中。此模型不与应用程序模型共享任何模型项。这意味着如果您调用如 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
                }
            }
        }
    }

VerticalHeaderView 默认将 resizableColumns 设置为 true

另请参阅 HorizontalHeaderView.

属性文档

model : QVariant

该属性保存为垂直表头视图提供数据的模型。

如果未显式设置模型,当设置 syncView 时,表头将使用 syncView 的模型。

如果模型是 QAbstractTableModel,将访问其 verticalHeaderData()。

如果模型是除 QAbstractTableModel 之外的 QAbstractItemModel,将访问模型的 data()。

否则,行为与设置 TableView::model 相同。

另请参阅 TableViewmodelQAbstractTableModel


syncView : TableView

该属性保存要同步的 TableView

一旦此属性绑定到另一个 TableView,表头和表格将在列宽、列间距和垂直滚动方面同步。

如果未显式设置 model,则表头将使用 syncView 的模型来标示列。

另请参阅 modelTableView


textRole : QString

该属性保存用于显示每个表头单元格中的文本的模型角色。

当模型有多个角色时,可以设置 textRole 以确定应显示哪个角色。

如果模型是 QAbstractItemModel,则默认为 "display";否则为空。

如果模型没有提供在 textRole 中指定的角色的警告,可以设置 textRole 确认警告。这样可以消除警告。

另请参阅 QAbstractItemModel::roleNames


© 2024 Qt 公司。包含在此处的文档贡献的版权属于其各自的所有者。本提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款提供的。Qt 和相关徽标是芬兰的 Qt 公司以及世界上其他国家的商标。所有其他商标均为其各自所有者的财产。