Sur cette page

Q3DScene Class

La classe `Q3DScene` fournit une description de la scène 3D en cours d'affichage. En savoir plus...

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érite de : QObject
Statut : Obsolète

Cette classe est obsolète. Nous vous déconseillons fortement de l'utiliser dans du nouveau code.

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 emplacement fixe.

La scène 3D garde également en mémoire la fenêtre d’affichage dans laquelle s’effectue le rendu de la visualisation, la sous-fenêtre principale à l’intérieur de la fenêtre d’affichage où se trouve la vue principale de visualisation des données 3D, ainsi que la sous-fenêtre secondaire où se trouve la vue en coupe 2D des données. Par défaut, la taille des sous-fenêtres est redimensionnée par l’ Q3DScene. Pour remplacer ce comportement de redimensionnement, vous devez écouter les signaux viewportChanged() et slicingActiveChanged() et recalculer la taille des sous-fenêtres en conséquence.

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

Remarque : toutes les visualisationsne prennentpas en charge la vue de découpage 2D secondaire.

Documentation des propriétés

activeCamera : Q3DCamera*

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

Lorsqu'un nouvel objet Q3DCamera est défini, il est automatiquement ajouté en tant qu'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é en tant qu'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 pixels de l'appareil utilisé lors de la conversion des coordonnées d'entrée en coordonnées de pixels.

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 la saisie de l'utilisateur qui doivent être traitées par la scène comme une requête de position dans le graphique.

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

Il n’existe pas de coordonnées 3D uniques permettant de faire correspondre une position particulière à l’écran ; par souci de cohérence, les requêtes sont donc toujours effectuées par rapport aux côtés intérieurs d’un rectangle invisible entourant le graphique.

Remarque : les graphiquesà barres n'autorisent les requêtes de position que au niveau du plancher du graphique.

Fonctions d’accès :

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

Signal de notification :

void graphPositionQueryChanged(const QPoint &position)

Voir également QAbstract3DGraph::queriedGraphPosition.

primarySubViewport : QRect

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

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

Remarque : définir primarySubViewport sur une valeur supérieure ou en dehors de la fenêtre d'affichage 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é définit le rectangle de la fenêtre d'affichage secondaire à l'intérieur de la fenêtre d'affichage.

La fenêtre d'affichage 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 sous-fenêtre secondaire est plus grande que la fenêtre d’affichage ou se trouve en dehors de celle-ci, la fenêtre d’affichage 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 de coupe 2D ou la vue 3D s'affiche au premier plan.

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 la saisie de l'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. Une fois le rendu effectué, la propriété revient à son état par défaut, à savoir ` invalidSelectionPoint()`.

Fonctions d’accès :

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

Signal de notification :

void selectionQueryPositionChanged(const QPoint &position)

Voir également QAbstract3DGraph::selectedElement.

slicingActive : bool

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

Si « true » est activé, « QAbstract3DGraph::selectionMode » doit avoir soit « QAbstract3DGraph::SelectionRow », soit « QAbstract3DGraph::SelectionColumn » défini sur une sélection valide.

Remarque : toutes les visualisationsne prennentpas en charge la vue de découpage 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é dispose d'une propriété en lecture seule qui contient le rectangle de la fenêtre d'affichage actuelle vers lequel est orienté l'ensemble du rendu 3D.

Fonctions d'accès :

QRect viewport() const

Signal de notification :

void viewportChanged(const QRect &viewport)

Documentation des fonctions membres

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

Crée une scène de base contenant une source lumineuse et une caméra. Un paramètre facultatif « parent » peut être fourni ; il est alors transmis au constructeur de « QObject ».

[virtual noexcept] Q3DScene::~Q3DScene()

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

[static] QPoint Q3DScene::invalidSelectionPoint()

Renvoie un code d'erreur « QPoint », indiquant une position de sélection non valide.

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

Indique si l'point on fournie se trouve à l'intérieur de la sous-vue principale ou non. Renvoie « true » si le point se trouve à l'intérieur de la sous-vue principale.

Remarque : si les sous-vues se superposent et que l'point e donné se trouve à l'intérieur des deux, le résultat est « true » uniquement lorsque la sous-vue principale se trouve au premier plan.

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

Indique si l'point e donné se trouve ou non à l'intérieur de la sous-vue secondaire. Renvoie « true » si le point se trouve à l'intérieur de la sous-vue secondaire.

Remarque : si les sous-vues se superposent et que l'point e donné se trouve à l'intérieur des deux, le résultat est « true » uniquement lorsque la sous-vue secondaire est au premier plan.

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