Sur cette page

CustomSeries QML Type

Le type CustomSeries permet de présenter des types de graphiques personnalisés. Plus d'informations...

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

Propriétés

Méthodes

Description détaillée

Utilisez CustomSeries pour créer des graphiques personnalisés. Il s'agit d'un graphique de dispersion qui vous permet d'accéder à des données personnalisées pour chaque élément.

CustomSeries définit un délégué qui est utilisé pour rendre chaque élément ajouté au graphique. Chaque élément comprend des données définies par l'utilisateur et stockées dans un fichier QVariantMap. L'index de l'élément dans le graphique est également ajouté automatiquement à la carte de données. Dans le contexte QML, la carte des variantes est définie par un objet JavaScript. La série transmet cette carte à chaque élément créé sur la base du délégué. Le délégué détermine comment utiliser les données.

Pour mapper les données aux coordonnées de rendu définies par les axes GraphsView, utilisez les fonctions mapX et mapY.

Remarque : actuellement, les éléments individuels d'une série personnalisée ne partagent pas d'informations entre eux. C'est pourquoi vous ne pouvez pas mettre en œuvre une série de lignes personnalisées.

Le code suivant met en œuvre le graphique personnalisé décrit. Dans ce cas, les données personnalisées contiennent deux valeurs : supérieure et inférieure. Celles-ci sont ensuite définies dans le délégué pour affecter la hauteur et la coordonnée y de l'élément.

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
                })
            }
        }
    }
}

Documentation sur les propriétés

delegate : Component

Le délégué est utilisé pour insérer dans QML des éléments correspondant aux données personnalisées fournies. Les données sont définies dans le site CustomSeries lui-même et transmises aux éléments délégués par l'intermédiaire de la propriété "data".

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))
        }
    }
}

Documentation de la méthode

void append()

Ajoute un élément de données vide à la série.

void append(var data)

Ajoute à la série un élément de données défini par data.

void clear()

Efface tous les éléments de données.

void insert(int index)

Ajoute un élément de données vide à la série à la position index.

void insert(int index, var data)

Ajoute un élément de données défini par data à la série à la position index.

real mapX(real x)

Renvoie x les coordonnées de l'espace-axe converties dans l'espace de rendu.

real mapY(real y)

Renvoie y les coordonnées de l'espace-axe converties dans l'espace de rendu.

void remove(int index)

Supprimer un élément de données à la 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.