VerticalHeaderView QML Type
Bietet eine vertikale Kopfzeilenansicht als Ergänzung zu „ TableView “. Mehr...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
Eigenschaften
- model : QVariant
- movableRows : bool
(since 6.8) - syncView : TableView
- textRole : string
Ausführliche Beschreibung
Eine „VerticalHeaderView“ stellt eine formatierte Tabellenüberschrift bereit. Sie kann entweder als eigenständige Ansicht oder als Überschrift für eine „ TableView “ verwendet werden.
Sie können eine Kopfzeile für eine „ TableView “ hinzufügen, indem Sie „ TableView “ der Eigenschaft „ syncView “ von „VerticalHeaderView“ zuweisen. Die Kopfzeile und die Tabelle werden dann beim Wischen synchronisiert.
Standardmäßig zeigt „VerticalHeaderView“ die „ header data “ aus dem „ sync view's “ unter „ model “ an. Wenn Sie keine Kopfzeilendaten aus diesem Modell verwenden möchten oder kein „ syncView “ nutzen, können Sie der Eigenschaft „ model “ explizit ein Modell zuweisen.
Hinweis: Um die Kopfdaten eines „ QAbstractItemModel “ anzuzeigen, verpackt „VerticalHeaderView“ die Kopfdaten des Modells intern in ein eigenständiges Proxy-Modell. Dieses Modell teilt keine Modellelemente mit dem „ application model “. Das bedeutet, dass bei Aufruf von Funktionen wie „ index()“ der zurückgegebene Modellindex zum Proxy-Modell und nicht zum Anwendungsmodell gehört.
Standardmäßig ist „ textRole “ auf „ "display" “ gesetzt, was bedeutet, dass Daten aus dem „ Qt::DisplayRole “ des Modells verwendet werden. Sie können hier einen anderen Rollennamen festlegen, damit stattdessen diese Daten angezeigt werden.
Die Anwendung ist dafür verantwortlich, die Kopfzeile an der richtigen Stelle in der Szene zu platzieren. Sie können einem einzelnen ` TableView` beliebig viele Kopfzeilen hinzufügen, was beispielsweise nützlich sein kann, wenn Sie Kopfzeilen an allen vier Seiten der Tabelle platzieren möchten.
Der folgende Codeausschnitt zeigt, wie Sie einer Tabellenansicht eine horizontale und eine vertikale Kopfzeilenansicht hinzufügen können:
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
}
}
}
}
}Bei einer „VerticalHeaderView“ ist „ resizableColumns “ standardmäßig auf „ true “ gesetzt.
Siehe auch „ HorizontalHeaderView “.
Dokumentation zu den Eigenschaften
model : QVariant
Diese Eigenschaft enthält das Modell, das Daten für die vertikale Kopfzeilenansicht bereitstellt.
Standardmäßig zeigt die vertikale Kopfzeilenansicht „ header data “ aus dem „ sync view's “ an ( model). Wenn Sie keine Kopfzeilendaten aus diesem Modell verwenden möchten oder kein „ syncView “ nutzen, können Sie dieser Eigenschaft explizit ein Modell zuweisen. Wenn „ model “ ein „ QAbstractTableModel “ ist, wird dessen „ header data “ verwendet. Andernfalls, wenn es sich um ein „ QAbstractItemModel “ handelt, wird „ data “ verwendet.
Neben „ QAbstractItemModels “ können Sie dieser Eigenschaft auch andere Modelltypen zuweisen, beispielsweise JavaScript-Arrays.
Siehe auch „ TableView “, „ model “ und „ QAbstractTableModel “.
movableRows : bool [since 6.8]
Diese Eigenschaft ermöglicht es dem Benutzer, Zeilen in der Ansicht zu verschieben. Der Standardwert lautet „ false “.
Hinweis: Wenn diese Eigenschaft gesetzt ist, ermöglicht „ VerticalHeaderView “ dem Benutzer, Zeilen per Drag & Drop an die gewünschte Position zu verschieben. Wenn „ syncView “ aktiviert ist, wird jede Änderung auf das entsprechende Ansichtsobjekt angewendet.
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
syncView : TableView
Diese Eigenschaft enthält die URL „ TableView “, mit der die Synchronisierung erfolgen soll.
Sobald diese Eigenschaft an eine andere „ TableView “ gebunden ist, werden sowohl die Kopfzeile als auch die Tabelle hinsichtlich Spaltenbreiten, Spaltenabständen und vertikalem Scrollen synchronisiert.
Wenn die „ model “ nicht explizit festgelegt ist, verwendet die Kopfzeile das Modell der „syncView“, um die Spalten zu beschriften.
Siehe auch „ model “ und „ TableView “.
textRole : string
Diese Eigenschaft enthält die Modellrolle, die zur Anzeige von Text in den einzelnen Kopfzeilenzellen verwendet wird.
Wenn das Modell mehrere Rollen hat, kann „textRole“ festgelegt werden, um zu bestimmen, welche Rolle angezeigt werden soll.
Es liegt in der Verantwortung des Delegaten, die zugewiesene „ textRole “ bei der Darstellung von Daten aus dem Modell zu berücksichtigen. Während „ HorizontalHeaderViewDelegate “ und „ VerticalHeaderViewDelegate “ dies automatisch übernehmen, müssen benutzerdefinierte Delegaten dieses Verhalten explizit implementieren.
Ist „model“ ein „ QAbstractItemModel “, wird standardmäßig „display“ verwendet; andernfalls ist der Wert leer.
Es wird eine Warnung ausgegeben, wenn die Methode ` roleNames()` des Modells die in `textRole` angegebene Rolle nicht bereitstellt. Die Warnung kann durch Festlegen von `textRole` unterdrückt werden.
Siehe auch ` 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.