VerticalHeaderView QML Type

Bietet eine vertikale Kopfansicht zu einer TableView. Mehr...

Import Statement: import QtQuick.Controls
Inherits:

TableView

Eigenschaften

Detaillierte Beschreibung

Eine VerticalHeaderView bietet eine gestylte Tabellenüberschrift. Sie kann entweder als unabhängige Ansicht oder als Kopfzeile für eine TableView verwendet werden.

Sie können eine Kopfzeile für eine TableView hinzufügen, indem Sie die TableView der syncView Eigenschaft von VerticalHeaderView zuweisen. Die Kopfzeile und die Tabelle werden dann beim Blättern synchron gehalten.

Standardmäßig zeigt VerticalHeaderView header data aus sync view's model an. Wenn Sie keine Kopfdaten aus diesem Modell verwenden möchten oder kein syncView verwenden, können Sie der Eigenschaft model explizit ein Modell zuweisen.

Hinweis: Um die Kopfdaten eines QAbstractItemModel anzuzeigen, wird VerticalHeaderView die Kopfdaten des Modells intern in ein unabhängiges Proxy-Modell verpacken. Dieses Modell teilt keine Modellelemente mit dem application model. Das bedeutet, dass wenn Sie Funktionen wie index() aufrufen, der Modellindex, den Sie zurückbekommen, zum Proxy-Modell und nicht zum Anwendungsmodell gehört.

Standardmäßig ist textRole auf "display" eingestellt, was bedeutet, dass die Daten von Qt::DisplayRole des Modells verwendet werden. Sie können dies auf einen anderen Rollennamen setzen, 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 beliebig viele Kopfzeilen zu einer einzigen TableView hinzufügen, was nützlich sein kann, wenn Sie zum Beispiel Kopfzeilen auf allen vier Seiten der Tabelle platzieren möchten.

Der folgende Ausschnitt zeigt, wie Sie eine horizontale und eine vertikale Kopfzeilenansicht zu einer Tabellenansicht 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 eingestellt.

Siehe auch HorizontalHeaderView.

Eigenschaft Dokumentation

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 sync view's model an. Wenn Sie keine Kopfdaten aus diesem Modell verwenden möchten oder kein syncView verwenden, 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.

Zusätzlich zu QAbstractItemModels können Sie dieser Eigenschaft auch andere Arten von Modellen zuweisen, wie z. B. 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 ist false.

Hinweis: Wenn diese Eigenschaft gesetzt ist, ermöglicht VerticalHeaderView dem Benutzer das Ziehen und Ablegen von Zeilen an der gewünschten Position. Wenn syncView aktiviert ist, wird jede Änderung auf das entsprechende Ansichtselement angewendet.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.


syncView : TableView

Diese Eigenschaft enthält die TableView, mit der synchronisiert werden soll.

Sobald diese Eigenschaft an eine andere TableView gebunden ist, werden sowohl Kopfzeile als auch Tabelle in Bezug auf Spaltenbreite, Spaltenabstand und vertikales Blättern synchronisiert.

Wenn die model nicht explizit gesetzt 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 für die Anzeige von Text in jeder Kopfzelle verwendet wird.

Wenn das Modell mehrere Rollen hat, kann textRole gesetzt werden, um zu bestimmen, welche Rolle angezeigt werden soll.

Wenn model eine QAbstractItemModel ist, wird sie standardmäßig auf "display" gesetzt; andernfalls ist sie leer.

Eine Warnung wird ausgegeben, wenn die roleNames() des Modells nicht die in textRole angegebene Rolle liefert. Die Warnung kann durch Setzen der textRole abgeschaltet werden.

Siehe auch QAbstractItemModel::roleNames().


© 2025 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.