HorizontalHeaderView QML Type
Proporciona una vista de cabecera horizontal para acompañar a un TableView. Más...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
Propiedades
- model : QVariant
- movableColumns : bool
(since 6.8) - syncView : TableView
- textRole : string
Descripción detallada
HorizontalHeaderView 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 HorizontalHeaderView. De este modo, la cabecera y la tabla se mantendrán sincronizadas durante el desplazamiento.
Por defecto, HorizontalHeaderView muestra header data de la 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, HorizontalHeaderView 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 HorizontalHeaderView tendrá resizableColumns establecido en true por defecto.
Véase también VerticalHeaderView.
Documentación de propiedades
model : QVariant
Esta propiedad contiene el modelo que proporciona los datos para la vista de cabecera horizontal.
Por defecto, la vista de cabecera horizontal muestra header data del modelo sync view's model . Si no desea utilizar 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.
movableColumns : bool [since 6.8]
Esta propiedad permite al usuario mover columnas en la vista. El valor por defecto es false.
Nota: Si esta propiedad está activada, HorizontalHeaderView permite al usuario arrastrar y soltar columnas 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 horizontal.
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.