Auf dieser Seite

VerticalHeaderView QML Type

Bietet eine vertikale Kopfzeilenansicht als Ergänzung zu „ TableView “. Mehr...

Import Statement: import QtQuick.Controls
Inherits:

TableView

Eigenschaften

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.