Q3DScatterWidgetItem Class
La classe `Q3DScatterWidgetItem` fournit des méthodes permettant de générer des graphiques de dispersion en 3D. En savoir plus...
| En-tête : | #include <Q3DScatterWidgetItem> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets) target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
| qmake : | QT += graphswidgets |
| Hérite de : | Q3DGraphsWidgetItem |
- Liste de tous les membres, y compris les membres hérités
- Q3DScatterWidgetItem fait partie des classes C++ pour widgets d'Qt Graphs .
Propriétés
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries*
Fonctions publiques
| Q3DScatterWidgetItem(QObject *parent = nullptr) | |
| virtual | ~Q3DScatterWidgetItem() override |
| 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 |
Emplacements publics
| 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 générer des graphiques de dispersion 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, tandis que le zoom s'effectue à l'aide de la molette de la souris. Si cette option est activée, la sélection s'effectue avec le 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 pour Q3DScatterWidgetItem, des axes par défaut temporaires sans étiquette sont créés. Ces axes par défaut peuvent être modifiés via des accesseurs d'axe, mais dès qu'un axe est explicitement défini pour une orientation, l'axe par défaut correspondant à cette orientation est supprimé.
Q3DScatterWidgetItem prend en charge l’affichage simultané de plusieurs séries.
Q3DScatterWidgetItem prend en charge la transparence. Cette fonctionnalité vous permet de régler l’opacité des points du nuage de points, en les rendant partiellement transparents, entièrement transparents ou opaques.
Comment créer un graphique Q3DScatterWidgetItem minimal
Commencez par créer un objet `Q3DScatterWidgetItem`. Comme, dans cet exemple, le graphique s’exécute en tant que fenêtre de niveau supérieur, nous devons désactiver le drapeau ` Qt::FramelessWindowHint `, qui est activé par défaut :
QQuickWidget quickWidget;
Q3DScatterWidgetItem scatter;
scatter.setWidget(&quickWidget);
scatter.widget()->setMinimumSize(QSize(256, 256));Q3DScatterWidgetItem est désormais prêt à recevoir les données à afficher. Ajoutez une série de 3 éléments « QVector3D » :
Remarque : dans la nouvelle relation de série proxy, les données sont stockées dans des séries. Par conséquent, pour que le proxy puisse ajouter, supprimer ou modifier les données, il est indispensable de créer d’abord une série.
QScatter3DSeries series;
QScatterDataArray data;
data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f)
<< QScatterDataItem(0.0f, -0.3f, 0.2f);
series.dataProxy()->addItems(data);
scatter.addSeries(&series);Enfin, vous devrez le rendre visible :
scatter.widget()->show();Le code complet nécessaire pour créer et afficher ce graphique est le suivant :
#include <QtGraphs>
#include <QtGraphsWidgets/q3dscatterwidgetitem.h>
#include <QtWidgets/qapplication.h>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QQuickWidget quickWidget;
Q3DScatterWidgetItem scatter;
scatter.setWidget(&quickWidget);
scatter.widget()->setMinimumSize(QSize(256, 256));
QScatter3DSeries series;
QScatterDataArray data;
data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f)
<< QScatterDataItem(0.0f, -0.3f, 0.2f);
series.dataProxy()->addItems(data);
scatter.addSeries(&series);
scatter.widget()->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 cet exemple de code minimal ne comporte aucune autre interaction. Vous pouvez en savoir plus en vous familiarisant avec les exemples fournis, comme le « Simple Scatter Graph ».
Voir également Q3DBarsWidgetItem, Q3DSurfaceWidgetItem et Qt Graphs Classes C++ pour la 3D.
Documentation sur les propriétés
axisX : QValue3DAxis*
Cette propriété indique l'axe des x actif.
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.
Fonctions d'accès :
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
Signal de notification :
| void | axisXChanged(QValue3DAxis *axis) |
Voir également addAxis() et releaseAxis().
axisY : QValue3DAxis*
Cette propriété définit l'axe Y actif.
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.
Fonctions d’accès :
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Signal de notification :
| void | axisYChanged(QValue3DAxis *axis) |
Voir également addAxis() et releaseAxis().
axisZ : QValue3DAxis*
Cette propriété définit l'axe Z actif.
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.
Fonctions d’accès :
| QValue3DAxis * | axisZ() const |
| void | setAxisZ(QValue3DAxis *axis) |
Signal de notification :
| void | axisZChanged(QValue3DAxis *axis) |
Voir également addAxis() et releaseAxis().
[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] Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)
Crée un nouveau graphique de dispersion en 3D avec l'parent, facultative.
[override virtual noexcept] Q3DScatterWidgetItem::~Q3DScatterWidgetItem()
Supprime le graphique de dispersion en 3D.
void Q3DScatterWidgetItem::addAxis(QValue3DAxis *axis)
Ajoute axis au graphe. Les axes ajoutés via addAxis ne sont pas encore utilisés ; addAxis sert simplement à attribuer la propriété de l'axis au graphe. L'axis ne doit pas être null ni avoir été ajouté à un autre graphe.
Voir également releaseAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatterWidgetItem::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 Q3DGraphsWidgetItem::hasSeries().
QList<QValue3DAxis *> Q3DScatterWidgetItem::axes() const
Renvoie la liste de tous les axes ajoutés.
Voir aussi addAxis().
void Q3DScatterWidgetItem::releaseAxis(QValue3DAxis *axis)
Restitue la propriété de l'axe « axis » à l'appelant, s'il est ajouté à ce graphe. Si l'axe « 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 réintégré ultérieurement, il se comporte comme n’importe quel autre axe.
Voir également addAxis(), setAxisX(), setAxisY() et setAxisZ().
void Q3DScatterWidgetItem::removeSeries(QScatter3DSeries *series)
Supprime l'series e du graphe.
Voir aussi Q3DGraphsWidgetItem::hasSeries().
QList<QScatter3DSeries *> Q3DScatterWidgetItem::seriesList() const
Renvoie la liste des séries ajoutées à ce graphique.
Voir également Q3DGraphsWidgetItem::hasSeries().
© 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.