Q3DScatter Class
La classe Q3DScatter fournit des méthodes de rendu des graphiques de dispersion 3D. Plus d'informations...
| 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 : | QAbstract3DGraph |
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 de rendre des graphiques de dispersion en 3D et de les visualiser en faisant pivoter la scène librement. La rotation s'effectue en maintenant le bouton droit de la souris enfoncé et en déplaçant la souris. Le zoom est effectué à l'aide de la molette de la souris. La sélection, si elle est activée, se fait à l'aide du bouton gauche de la souris. La scène peut être ramenée à la vue par défaut de la caméra en cliquant sur la molette de la souris. Sur les appareils tactiles, la rotation se fait par tapotement et déplacement, la sélection par tapotement et maintien et le zoom par pincement.
Si aucun axe n'est défini explicitement dans Q3DScatter, des axes temporaires par défaut 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 défini explicitement pour l'orientation, l'axe par défaut pour cette orientation est détruit.
Q3DScatter supporte plus d'une série visible en même temps.
Comment construire un graphique Q3DScatter minimal ?
Commencez par construire Q3DScatter. Puisque nous exécutons le graphique en tant que fenêtre de premier niveau dans cet exemple, nous devons désactiver le drapeau Qt::FramelessWindowHint, qui est activé par défaut :
Q3DScatter scatter; scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
Q3DScatter est maintenant prêt à recevoir les données à afficher. Ajoutez une série de 3 éléments 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();Le code complet nécessaire à la création et à l'affichage de ce graphique est le suivant :
#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 ce que ces quelques lignes de code produisent :

La scène peut être tournée, zoomée et un élément peut être sélectionné pour voir 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 aussi Q3DBars, Q3DSurface, et Qt Data Visualization C++ Classes.
Documentation sur les propriétés
axisX : QValue3DAxis*
Cette propriété contient l'axe des 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é contient l'axe des ordonnées actif.
Fonctions d'accès :
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Signal de notification :
| void | axisYChanged(QValue3DAxis *axis) |
axisZ : QValue3DAxis*
Cette propriété contient 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 null.
Fonctions d'accès :
| QScatter3DSeries * | selectedSeries() const |
Signal du notificateur :
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Fonction membre Documentation
[explicit] Q3DScatter::Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)
Construit un nouveau graphique de dispersion 3D avec la fenêtre parent et la surface format.
[virtual noexcept] Q3DScatter::~Q3DScatter()
Détruit le graphique de dispersion 3D.
void Q3DScatter::addAxis(QValue3DAxis *axis)
Ajoute axis au graphique. Les axes ajoutés via addAxis ne sont pas encore utilisés, addAxis est simplement utilisé pour donner la propriété de axis au graphique. L'adresse axis ne doit pas être nulle ou ajoutée à un autre graphique.
Voir aussi releaseAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatter::addSeries(QScatter3DSeries *series)
Ajoute le site series au graphique. Un graphique peut contenir plusieurs séries, mais n'a qu'un seul ensemble d'axes. Si la série nouvellement ajoutée a spécifié un élément sélectionné, elle sera mise en évidence et toute sélection existante sera effacée. Une seule série ajoutée peut avoir 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 : fonction d'obtention pour la propriété axisZ.
Voir également setAxisZ().
void Q3DScatter::releaseAxis(QValue3DAxis *axis)
Libère la propriété du site axis à l'appelant, s'il est ajouté à ce graphique. Si l'adresse axis libérée est utilisée, un nouvel axe par défaut sera créé et activé.
Si l'axe par défaut est libéré et ajouté plus tard, il se comporte comme n'importe quel autre axe.
Voir également addAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatter::removeSeries(QScatter3DSeries *series)
Supprime le site series du graphique.
Voir aussi QAbstract3DGraph::hasSeries().
QList<QScatter3DSeries *> Q3DScatter::seriesList() const
Renvoie la liste des séries ajoutées à ce graphique.
Voir également QAbstract3DGraph::hasSeries().
void Q3DScatter::setAxisX(QValue3DAxis *axis)
Définit axis comme l'axe des x actif. Appelle implicitement addAxis() pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut sans étiquette et avec une plage qui s'ajuste automatiquement est créé. Cet axe temporaire est détruit si un autre axe est défini explicitement avec la même orientation.
Remarque : fonction de définition de la propriété axisX.
Voir également axisX(), addAxis() et releaseAxis().
void Q3DScatter::setAxisY(QValue3DAxis *axis)
Définit axis comme axe des ordonnées actif. Appelle implicitement addAxis() pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut sans étiquette et avec une plage qui s'ajuste automatiquement est créé. Cet axe temporaire est détruit si un autre axe est défini explicitement avec la même orientation.
Remarque : fonction de définition de la propriété axisY.
Voir également axisY(), addAxis() et releaseAxis().
void Q3DScatter::setAxisZ(QValue3DAxis *axis)
Définit axis comme l'axe z actif. Appelle implicitement addAxis() pour transférer la propriété de l'axe à ce graphique.
Si axis est nul, un axe temporaire par défaut sans étiquette et avec une plage qui s'ajuste automatiquement est créé. Cet axe temporaire est détruit si un autre axe est défini explicitement avec la même orientation.
Remarque : fonction de définition de 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.