Auf dieser Seite

CustomSeries QML Type

Der Typ CustomSeries ermöglicht die Darstellung angepasster Diagrammtypen. Mehr...

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

Eigenschaften

Methoden

Detaillierte Beschreibung

Verwenden Sie CustomSeries, um angepasste Diagramme zu erstellen. Stellen Sie es sich 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 dem 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 auch automatisch zur Datenkarte hinzugefügt. Im QML-Kontext wird die Variantenkarte durch ein JavaScript-Objekt definiert. Die Serie übergibt diese Map an jedes Element, das auf der Grundlage des Delegaten erstellt wird. Der Delegat bestimmt, wie die Daten zu verwenden sind.

Um Daten den durch die Achsen von GraphsView definierten Renderkoordinaten zuzuordnen, verwenden Sie die Funktionen mapX und mapY.

Hinweis: Derzeit tauschen einzelne Elemente in einer benutzerdefinierten Serie keine Informationen untereinander aus. Aus diesem Grund können Sie keine benutzerdefinierten Linienreihen implementieren.

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 der Eigenschaft

delegate : Component

Der Delegat wird verwendet, um Elemente in QML einzufügen, die den bereitgestellten benutzerdefinierten Daten entsprechen. Die Daten werden in der CustomSeries selbst definiert und den delegierten Elementen über die Eigenschaft "data" ü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))
        }
    }
}

Dokumentation der Methode

void append()

Hängt ein leeres Datenelement an die Serie an.

void append(var data)

Hängt ein durch data definiertes Datenelement an die Serie an.

void clear()

Löschen Sie alle Datenelemente.

void insert(int index)

Hängt ein leeres Datenelement an die Reihe an der Position index an.

void insert(int index, var data)

Hängt ein durch data definiertes Datenelement an die Reihe an der Position index an.

real mapX(real x)

Liefert x Achsen-Raum-Koordinaten umgerechnet in den Render-Raum.

real mapY(real y)

Liefert y Achsen-Raum-Koordinaten umgerechnet in den Render-Raum.

void remove(int index)

Entfernen Sie 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.