Sur cette page

Q3DScene Class

La classe Q3DScene fournit une description de la scène 3D visualisée. Plus d'informations...

En-tête : #include <Q3DScene>
CMake : find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake : QT += datavisualization
Depuis : QtDataVisualization 1.0
En QML : Scene3D
Hérites : QObject

Propriétés

Fonctions publiques

Q3DScene(QObject *parent = nullptr)
virtual ~Q3DScene()
Q3DCamera *activeCamera() const
Q3DLight *activeLight() const
float devicePixelRatio() const
QPoint graphPositionQuery() const
bool isPointInPrimarySubView(const QPoint &point)
bool isPointInSecondarySubView(const QPoint &point)
bool isSecondarySubviewOnTop() const
bool isSlicingActive() const
QRect primarySubViewport() const
QRect secondarySubViewport() const
QPoint selectionQueryPosition() const
void setActiveCamera(Q3DCamera *camera)
void setActiveLight(Q3DLight *light)
void setDevicePixelRatio(float pixelRatio)
void setGraphPositionQuery(const QPoint &point)
void setPrimarySubViewport(const QRect &primarySubViewport)
void setSecondarySubViewport(const QRect &secondarySubViewport)
void setSecondarySubviewOnTop(bool isSecondaryOnTop)
void setSelectionQueryPosition(const QPoint &point)
void setSlicingActive(bool isSlicing)
QRect viewport() const

Signaux

void activeCameraChanged(Q3DCamera *camera)
void activeLightChanged(Q3DLight *light)
void devicePixelRatioChanged(float pixelRatio)
void graphPositionQueryChanged(const QPoint &position)
void primarySubViewportChanged(const QRect &subViewport)
void secondarySubViewportChanged(const QRect &subViewport)
void secondarySubviewOnTopChanged(bool isSecondaryOnTop)
void selectionQueryPositionChanged(const QPoint &position)
void slicingActiveChanged(bool isSlicingActive)
void viewportChanged(const QRect &viewport)

Membres publics statiques

Description détaillée

La scène 3D contient une seule caméra active et une seule source lumineuse active. Les données visualisées sont supposées se trouver à un endroit fixe.

La scène 3D garde également la trace de la fenêtre de visualisation dans laquelle le rendu de la visualisation est effectué, de la fenêtre secondaire principale à l'intérieur de la fenêtre de visualisation où se trouve la vue principale de visualisation des données 3D et de la fenêtre secondaire où se trouve la vue en coupe 2D des données. Les fenêtres secondaires sont redimensionnées par défaut par le signal Q3DScene. Pour modifier le comportement de redimensionnement, vous devez écouter les signaux viewportChanged() et slicingActiveChanged() et recalculer les fenêtres secondaires en conséquence.

La scène dispose également d'un indicateur permettant de savoir si la vue secondaire de découpage en 2D est actuellement active ou non.

Remarque : toutes les visualisations ne prennent pas en charge la vue secondaire de découpage en 2D.

Documentation sur les propriétés

activeCamera : Q3DCamera*

Cette propriété indique la caméra actuellement active dans la scène 3D.

Lorsqu'un nouvel objet Q3DCamera est défini, il est automatiquement ajouté comme enfant de la scène.

Fonctions d'accès :

Q3DCamera *activeCamera() const
void setActiveCamera(Q3DCamera *camera)

Signal de notification :

void activeCameraChanged(Q3DCamera *camera)

activeLight : Q3DLight*

Cette propriété contient la lumière actuellement active dans la scène 3D.

Lorsqu'un nouvel objet Q3DLight est défini, il est automatiquement ajouté comme enfant de la scène.

Fonctions d'accès :

Q3DLight *activeLight() const
void setActiveLight(Q3DLight *light)

Signal de notification :

void activeLightChanged(Q3DLight *light)

devicePixelRatio : float

Cette propriété contient le rapport de pixel du périphérique qui est utilisé lors du mappage des coordonnées d'entrée en coordonnées de pixel.

Fonctions d'accès :

float devicePixelRatio() const
void setDevicePixelRatio(float pixelRatio)

Signal de notification :

void devicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

Cette propriété contient les coordonnées de l'entrée utilisateur qui doit être traitée par la scène en tant que requête de position du graphique.

Si cette propriété est définie sur une valeur autre que invalidSelectionPoint(), le graphique tente de faire correspondre une position du graphique aux coordonnées spécifiées dans la fenêtre d'affichage principale. Après la passe de rendu, cette propriété est ramenée à son état par défaut, à savoir invalidSelectionPoint(). La position du graphique demandée peut être lue à partir de la propriété QAbstract3DGraph::queriedGraphPosition après la prochaine passe de rendu.

Il n'existe pas de coordonnées 3D correctes correspondant à une position d'écran particulière. Par souci de cohérence, les requêtes sont toujours effectuées par rapport aux côtés intérieurs d'une boîte invisible entourant le graphique.

Remarque : les graphiques à barres ne permettent d'interroger la position du graphique qu'au niveau de l'étage du graphique.

Fonctions d'accès :

QPoint graphPositionQuery() const
void setGraphPositionQuery(const QPoint &point)

Signal de notification :

void graphPositionQueryChanged(const QPoint &position)

Voir aussi QAbstract3DGraph::queriedGraphPosition.

primarySubViewport : QRect

Cette propriété contient le rectangle de sous-vue actuel à l'intérieur de la fenêtre de visualisation où la vue principale de la visualisation de données est ciblée.

Si isSlicingActive() est false, la fenêtre secondaire primaire est égale à viewport(). Si isSlicingActive() est true et que la fenêtre secondaire primaire n'a pas été explicitement définie, elle sera égale à un cinquième de viewport().

Remarque : le fait de définir primarySubViewport à une valeur supérieure ou inférieure à celle de la fenêtre de visualisation redimensionne cette dernière en conséquence.

Fonctions d'accès :

QRect primarySubViewport() const
void setPrimarySubViewport(const QRect &primarySubViewport)

Signal de notification :

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

Cette propriété contient le rectangle de la fenêtre secondaire à l'intérieur de la fenêtre de visualisation.

La fenêtre secondaire est utilisée pour dessiner la vue en coupe 2D dans certaines visualisations. Si elle n'a pas été explicitement définie, elle sera égale à QRect. Si isSlicingActive() est true, elle sera égale à viewport.

Remarque : si la fenêtre secondaire est plus grande ou en dehors de la fenêtre, cette dernière est redimensionnée en conséquence.

Fonctions d'accès :

QRect secondarySubViewport() const
void setSecondarySubViewport(const QRect &secondarySubViewport)

Signal de notification :

void secondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

Cette propriété détermine si la vue 2D ou la vue 3D est dessinée en haut.

Fonctions d'accès :

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

Signal de notification :

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

Cette propriété contient les coordonnées de l'entrée utilisateur qui doit être traitée par la scène comme une sélection.

Si cette propriété est définie sur une valeur autre que invalidSelectionPoint(), le graphique tente de sélectionner un élément de données, une étiquette d'axe ou un élément personnalisé aux coordonnées spécifiées dans la fenêtre d'affichage principale. Après la passe de rendu, la propriété est ramenée à son état par défaut, à savoir invalidSelectionPoint().

Fonctions d'accès :

QPoint selectionQueryPosition() const
void setSelectionQueryPosition(const QPoint &point)

Signal Notifier :

void selectionQueryPositionChanged(const QPoint &position)

Voir aussi QAbstract3DGraph::selectedElement.

slicingActive : bool

Cette propriété indique si la vue de découpage en 2D est actuellement active.

Si true, QAbstract3DGraph::selectionMode doit avoir QAbstract3DGraph::SelectionRow ou QAbstract3DGraph::SelectionColumn réglé sur une sélection valide.

Remarque : toutes les visualisations ne prennent pas en charge la vue en coupe 2D.

Fonctions d'accès :

bool isSlicingActive() const
void setSlicingActive(bool isSlicing)

Signal de notification :

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : QRect

Cette propriété contient une propriété en lecture seule qui contient le rectangle de visualisation actuel où tous les rendus 3D sont ciblés.

Fonctions d'accès :

QRect viewport() const

Signal Notificateur :

void viewportChanged(const QRect &viewport)

Fonction membre Documentation

[explicit] Q3DScene::Q3DScene(QObject *parent = nullptr)

Construit une scène de base avec une lumière et une caméra. Un paramètre facultatif parent peut être fourni et est ensuite transmis au constructeur QObject.

[virtual noexcept] Q3DScene::~Q3DScene()

Détruit la scène 3D et tous les objets qu'elle contient.

[static] QPoint Q3DScene::invalidSelectionPoint()

Renvoie une adresse QPoint indiquant une position de sélection non valide.

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

Retourne si le point donné point se trouve à l'intérieur de la vue secondaire primaire ou non. Renvoie true si le point se trouve à l'intérieur de la vue secondaire principale.

Remarque : si des vues secondaires sont superposées et que le point point se trouve à l'intérieur des deux, le résultat est true uniquement si la vue secondaire principale est en haut.

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

Retourne si le point donné point se trouve à l'intérieur de la vue secondaire ou non. Renvoie true si le point se trouve à l'intérieur de la vue secondaire.

Remarque : si les vues secondaires sont superposées et que le point point se trouve à l'intérieur des deux, le résultat est true uniquement si la vue secondaire est en haut.

© 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.