Q3DScatter Class
La classe Q3DScatter propose des méthodes permettant de générer des graphiques de dispersion en 3D. En savoir plus...
| En-tête : | #include <Q3DScatter> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
| qmake : | QT += datavisualization |
| Depuis : | QtDataVisualization 1.0 |
| Hérite de : | QAbstract3DGraph |
| Statut : | Obsolète |
Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.
Propriétés
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries*
Fonctions publiques
| Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr) | |
| virtual | ~Q3DScatter() |
| void | addAxis(QValue3DAxis *axis) |
| void | addSeries(QScatter3DSeries *series) |
| QList<QValue3DAxis *> | axes() const |
| QValue3DAxis * | axisX() const |
| QValue3DAxis * | axisY() const |
| QValue3DAxis * | axisZ() const |
| void | releaseAxis(QValue3DAxis *axis) |
| void | removeSeries(QScatter3DSeries *series) |
| QScatter3DSeries * | selectedSeries() const |
| QList<QScatter3DSeries *> | seriesList() const |
| void | setAxisX(QValue3DAxis *axis) |
| void | setAxisY(QValue3DAxis *axis) |
| void | setAxisZ(QValue3DAxis *axis) |
Signaux
| void | axisXChanged(QValue3DAxis *axis) |
| void | axisYChanged(QValue3DAxis *axis) |
| void | axisZChanged(QValue3DAxis *axis) |
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Description détaillée
Cette classe permet aux développeurs d'afficher des graphiques en nuage de points en 3D et de les visualiser en faisant pivoter librement la scène. La rotation s'effectue en maintenant le bouton droit de la souris enfoncé et en déplaçant la souris. Le zoom s'effectue à l'aide de la molette de la souris. La sélection, si elle est activée, s'effectue à l'aide du bouton gauche de la souris. La scène peut être réinitialisée à la vue par défaut de la caméra en cliquant sur la molette de la souris. Sur les appareils tactiles, la rotation s’effectue par « tap-and-move », la sélection par « tap-and-hold » et le zoom par « pinch ».
Si aucun axe n’est explicitement défini dans Q3DScatter, des axes par défaut temporaires sans étiquette sont créés. Ces axes par défaut peuvent être modifiés via les accesseurs d’axe, mais dès qu’un axe est explicitement défini pour une orientation donnée, l’axe par défaut correspondant à cette orientation est supprimé.
Q3DScatter prend en charge l’affichage simultané de plusieurs séries.
Comment créer un graphique Q3DScatter minimal
Commencez par créer un objet Q3DScatter. Comme, dans cet exemple, le graphique s’affiche dans une fenêtre de niveau supérieur, il faut désactiver l’indicateur « Qt::FramelessWindowHint », qui est activé par défaut :
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);Q3DScatter est désormais prêt à recevoir les données à afficher. Ajoutez une série composée de 3 éléments d’ QVector3D:
QScatter3DSeries *series = new QScatter3DSeries;
QScatterDataArray data;
data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
series->dataProxy()->addItems(data);
scatter.addSeries(series);Enfin, vous devrez le rendre visible :
scatter.show();Voici le code complet nécessaire pour créer et afficher ce graphique :
#include <QtDataVisualization>
int main(int argc, char **argv)
{
qputenv("QSG_RHI_BACKEND", "opengl");
QGuiApplication app(argc, argv);
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
QScatter3DSeries *series = new QScatter3DSeries;
QScatterDataArray data;
data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
series->dataProxy()->addItems(data);
scatter.addSeries(series);
scatter.show();
return app.exec();
}Et voici le résultat obtenu avec ces quelques lignes de code :

La scène peut être pivotée, agrandie, et un élément peut être sélectionné pour afficher sa position, mais aucune autre interaction n’est incluse dans cet exemple de code minimal. Vous pouvez en apprendre davantage en vous familiarisant avec les exemples fournis, comme le graphique de dispersion.
Voir également Q3DBars, Q3DSurface et Qt Data Visualization C++ Classes.
Documentation sur les propriétés
axisX : QValue3DAxis*
Cette propriété définit l'axe x actif.
Fonctions d'accès :
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
Signal de notification :
| void | axisXChanged(QValue3DAxis *axis) |
axisY : QValue3DAxis*
Cette propriété définit l'axe Y actif.
Fonctions d'accès :
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Signal de notification :
| void | axisYChanged(QValue3DAxis *axis) |
axisZ : QValue3DAxis*
Cette propriété définit l'axe Z actif.
Fonctions d'accès :
Signal de notification :
| void | axisZChanged(QValue3DAxis *axis) |
[read-only] selectedSeries : QScatter3DSeries*
Cette propriété contient la série sélectionnée ou la valeur NULL.
Fonctions d'accès :
| QScatter3DSeries * | selectedSeries() const |
Signal de notification :
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Documentation des fonctions membres
[explicit] Q3DScatter::Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)
Crée un nouveau graphique de dispersion en 3D avec, en option, une fenêtre d'parent s et une surface d'format.
[virtual noexcept] Q3DScatter::~Q3DScatter()
Supprime le graphique de dispersion en 3D.
void Q3DScatter::addAxis(QValue3DAxis *axis)
axis Ajoute l'axis au graphe. Les axes ajoutés via addAxis ne sont pas encore pris en compte ; addAxis sert simplement à attribuer la propriété de l' au graphe. L'axis ne doit pas être nulle ni avoir été ajoutée à un autre graphe.
Voir également releaseAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatter::addSeries(QScatter3DSeries *series)
Ajoute la série « series » au graphique. Un graphique peut contenir plusieurs séries, mais ne dispose que d’un seul jeu d’axes. Si la série nouvellement ajoutée comporte un élément sélectionné, celui-ci sera mis en surbrillance et toute sélection existante sera désélectionnée. Une seule série ajoutée peut faire l’objet d’une sélection active.
Voir également QAbstract3DGraph::hasSeries().
QList<QValue3DAxis *> Q3DScatter::axes() const
Renvoie la liste de tous les axes ajoutés.
Voir aussi addAxis().
QValue3DAxis *Q3DScatter::axisZ() const
Renvoie l'axe Z utilisé.
Remarque : fonctiongetter pour la propriété axisZ.
Voir aussi setAxisZ().
void Q3DScatter::releaseAxis(QValue3DAxis *axis)
Restitue la propriété de l’ axis à l’appelant, s’il est ajouté à ce graphe. Si l’ axis restitué est en cours d’utilisation, un nouvel axe par défaut sera créé et activé.
Si l’axe par défaut est libéré puis rajouté ultérieurement, il se comporte comme n’importe quel autre axe.
Voir également addAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatter::removeSeries(QScatter3DSeries *series)
Supprime l'series e du graphe.
Voir aussi QAbstract3DGraph::hasSeries().
QList<QScatter3DSeries *> Q3DScatter::seriesList() const
Renvoie la liste des séries ajoutées à ce graphique.
Voir aussi QAbstract3DGraph::hasSeries().
void Q3DScatter::setAxisX(QValue3DAxis *axis)
Définit ` axis ` comme axe x actif. Appelle implicitement la méthode ` addAxis()` pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut, sans étiquettes et dont la plage s'ajuste automatiquement, est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Remarque : fonctionde définition de la propriété axisX.
Voir également axisX(), addAxis() et releaseAxis().
void Q3DScatter::setAxisY(QValue3DAxis *axis)
Définit ` axis ` comme axe Y actif. Appelle implicitement la méthode ` addAxis()` pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut, sans étiquettes et dont la plage s’ajuste automatiquement, est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Remarque : fonction de définition (setter ) de la propriété axisY.
Voir également axisY(), addAxis() et releaseAxis().
void Q3DScatter::setAxisZ(QValue3DAxis *axis)
Définit ` axis ` comme axe Z actif. Appelle implicitement la méthode ` addAxis()` pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut, sans étiquettes et dont la plage s'ajuste automatiquement, est créé. Cet axe temporaire est détruit si un autre axe est explicitement défini avec la même orientation.
Remarque : fonctionde définition pour la propriété axisZ.
Voir également axisZ(), addAxis() et releaseAxis().
© 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.