Auf dieser Seite

CustomSeries QML Type

Der Typ „CustomSeries“ ermöglicht die Darstellung benutzerdefinierter Diagrammtypen. Mehr...

Import Statement: import QtGraphs
Since: Qt 6.11
In C++: QCustomSeries

Eigenschaften

Methoden

Ausführliche Beschreibung

Verwenden Sie „CustomSeries“, um benutzerdefinierte Diagramme zu erstellen. Stellen Sie sich dies als ein Streudiagramm vor, mit dem Sie auf benutzerdefinierte Daten für jedes Element zugreifen können.

„CustomSeries“ definiert einen Delegaten, der zum Rendern jedes zum Diagramm hinzugefügten Elements verwendet wird. Jedes Element enthält benutzerdefinierte Daten, die in einer „ QVariantMap “ gespeichert sind. Der Index des Elements im Diagramm wird ebenfalls automatisch zur Datenkarte hinzugefügt. Im QML-Kontext wird die Variantenkarte durch ein JavaScript-Objekt definiert. Die Serie übergibt diese Karte an jedes Element, das auf Basis des Delegaten erstellt wird. Der Delegat legt fest, wie die Daten verwendet werden.

Um Daten den durch die Achsen des „ GraphsView “ definierten Darstellungskoordinaten zuzuordnen, verwenden Sie die Funktionen „ mapX “ und „ mapY “.

Hinweis: Derzeit tauschen einzelne Elemente einer benutzerdefinierten Reihe keine Informationen untereinander aus. Aus diesem Grund können Sie keine benutzerdefinierte Linienreihe implementieren.

Balkendiagramm mit zwei Balken mit Farbverlauf

Der folgende Code implementiert das abgebildete benutzerdefinierte Diagramm. In diesem Fall enthalten die benutzerdefinierten Daten zwei Werte: „upper“ und „lower“. Diese werden dann im Delegaten definiert, um die Höhe und die y-Koordinate des Elements zu beeinflussen.

import QtQuick
import QtGraphs

Window {
    width: 640
    height: 480
    visible: true

    GraphsView {
        anchors.fill: parent

        axisX: BarCategoryAxis {
            categories: ["ABC", "DEF"]
        }

        axisY: ValueAxis {
            max: 8
            tickInterval: 1
        }

        CustomSeries {
            id: custom

            delegate: Rectangle {
                property var data
                gradient: Gradient {
                    GradientStop { position: 0.0; color: "lightsteelblue" }
                    GradientStop { position: 1.0; color: "blue" }
                }
                border.width: 1
                x: custom.mapX(data.index + 0.5) - width * 0.5
                y: custom.mapY((data.upper + data.lower) * 0.5) - height * 0.5
                width: Math.abs(custom.mapX(1) - custom.mapX(0)) * 0.5
                height: Math.abs(custom.mapY(data.upper) - custom.mapY(data.lower))
            }

            CustomSeriesData {
                data: ({
                    upper: 5,
                    lower: 1
                })
            }

            CustomSeriesData {
                data: ({
                    upper: 6,
                    lower: 4
                })
            }
        }
    }
}

Dokumentation zu den Eigenschaften

delegate : Component

Der Delegate dient dazu, Elemente entsprechend den bereitgestellten benutzerdefinierten Daten in QML einzufügen. Die Daten werden im „ CustomSeries “ selbst definiert und über die Eigenschaft „data“ an die delegierten Elemente übergeben.

delegate: Rectangle {
        property var data
        Rectangle {
            color: "tan"
            border.color: "black"
            border.width: 4
            y: series.mapY(data.index + 1) - height / 2 + 1
            x: series.mapX(data.median) - width / 2
            height: 32
            width: Math.abs(series.mapX(data.upperQuartile) - series.mapX(data.lowerQuartile))
        }
    }
}

Methodendokumentation

void append()

Fügt der Reihe ein leeres Datenelement hinzu.

void append(var data)

Fügt der Reihe ein Datenelement hinzu, das durch „ data “ definiert ist.

void clear()

Alle Datenelemente löschen.

void insert(int index)

Fügt der Reihe an der Position index ein leeres Datenelement an.

void insert(int index, var data)

Fügt der Reihe an der Position index ein Datenelement hinzu, das durch data definiert ist.

real mapX(real x)

Gibt die in den Render-Raum umgerechnete Koordinate des Achsenraums „ x “ zurück.

real mapY(real y)

Gibt die in den Render-Raum umgerechnete Koordinate der Achse „ y “ zurück.

void remove(int index)

Entferne ein Datenelement an der Position index.

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