En esta página

VerticalHeaderView QML Type

Ofrece una vista de cabecera vertical para acompañar a un TableView. Más...

Import Statement: import QtQuick.Controls
Inherits:

TableView

Propiedades

Descripción detallada

VerticalHeaderView proporciona una cabecera de tabla con estilo. Puede utilizarse como vista independiente o como cabecera de un TableView.

Puede añadir una cabecera para TableView asignando TableView a la propiedad syncView de VerticalHeaderView. De este modo, la cabecera y la tabla se mantendrán sincronizadas durante el desplazamiento.

Por defecto, VerticalHeaderView muestra header data del sync view's model . Si no desea utilizar datos de cabecera de ese modelo, o no utiliza syncView, puede asignar un modelo explícitamente a la propiedad model.

Nota: Para mostrar los datos de cabecera de un QAbstractItemModel, VerticalHeaderView envolverá internamente los datos de cabecera del modelo en un modelo proxy independiente. Este modelo no comparte ningún elemento del modelo con application model. Esto significa que si llama a funciones como index(), el índice del modelo que obtendrá de vuelta pertenecerá al modelo proxy y no al modelo de la aplicación.

Por defecto, textRole se establece en "display", lo que significa que se utilizarán los datos del modelo Qt::DisplayRole. Puedes establecerlo a otro nombre de rol para que se muestren esos datos en su lugar.

La aplicación es responsable de colocar la cabecera en el lugar correcto de la escena. Puede añadir tantas cabeceras como desee a un único TableView, lo que puede resultar útil si, por ejemplo, desea colocar cabeceras en los cuatro lados de la tabla.

El siguiente fragmento muestra cómo puede añadir una vista de cabecera horizontal y vertical a una vista de tabla:

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: Application.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
                }
            }
        }
    }
}

Una VerticalHeaderView tendrá resizableColumns establecido en true por defecto.

Véase también HorizontalHeaderView.

Documentación de propiedades

model : QVariant

Esta propiedad contiene el modelo que proporciona los datos para la vista de cabecera vertical.

Por defecto, la vista de cabecera vertical muestra header data del modelo sync view's model . Si no desea utilizar los datos de cabecera de ese modelo, o no utiliza un syncView, puede asignar un modelo explícitamente a esta propiedad. Si model es un QAbstractTableModel, se utilizará su header data. En caso contrario, si es un QAbstractItemModel, se utilizará data.

Además de QAbstractItemModels, también puede asignar otros tipos de modelos a esta propiedad, como arrays JavaScript.

Véase también TableView, model, y QAbstractTableModel.

movableRows : bool [since 6.8]

Esta propiedad permite al usuario mover filas en la vista. El valor por defecto es false.

Nota: Si esta propiedad está activada, VerticalHeaderView permite al usuario arrastrar y soltar filas en la posición deseada. Cuando syncView está activada, cualquier cambio se aplicará al elemento de la vista correspondiente.

Esta propiedad se introdujo en Qt 6.8.

syncView : TableView

Esta propiedad contiene el TableView con el que sincronizar.

Una vez que esta propiedad está vinculada a otro TableView, tanto la cabecera como la tabla se sincronizarán con respecto al ancho de las columnas, el espaciado entre columnas y el desplazamiento vertical.

Si model no se establece explícitamente, la cabecera utilizará el modelo de syncView para etiquetar las columnas.

Véase también model y TableView.

textRole : string

Esta propiedad contiene el rol del modelo utilizado para mostrar el texto en cada celda de la cabecera.

Cuando el modelo tiene múltiples roles, textRole puede establecerse para determinar qué rol debe mostrarse.

Es responsabilidad del delegado respetar el textRole asignado al presentar los datos del modelo. Mientras que HorizontalHeaderViewDelegate y VerticalHeaderViewDelegate gestionan esto automáticamente, los delegados personalizados deben implementar este comportamiento explícitamente.

Si el modelo es un QAbstractItemModel, su valor predeterminado será "display"; en caso contrario, estará vacío.

Se emite una advertencia si roleNames() del modelo no proporciona el rol especificado en textRole. La advertencia puede silenciarse estableciendo textRole.

Véase también QAbstractItemModel::roleNames().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.