Sur cette page

Qt3DCore::QAspectEngine Class

class Qt3DCore::QAspectEngine

Responsable de la gestion de toutes les sous-classes de QAbstractAspect qui ont été enregistrées sur la scène. Plus d'informations...

En-tête : #include <Qt3DCore/QAspectEngine>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3DCore)
target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmake : QT += 3dcore
Hérite : QObject
Statut : Déclassé

Fonctions publiques

QAspectEngine(QObject *parent = nullptr)
virtual ~QAspectEngine()
Qt3DCore::QAbstractAspect *aspect(const QString &name) const
QList<Qt3DCore::QAbstractAspect *> aspects() const
QVariant executeCommand(const QString &command)
void processFrame()
void registerAspect(Qt3DCore::QAbstractAspect *aspect)
void registerAspect(const QString &name)
Qt3DCore::QEntityPtr rootEntity() const
void setRootEntity(Qt3DCore::QEntityPtr root)
void unregisterAspect(Qt3DCore::QAbstractAspect *aspect)
void unregisterAspect(const QString &name)

Description détaillée

La boucle d'exécution de Qt3D est contrôlée par Qt3DRender::QAspectEngine.

Qt3DCore::QAbstractAspect Les sous-classes peuvent être enregistrées en appelant Qt3DCore::QAspectEngine::registerAspect() qui se chargera d'enregistrer l'aspect et qui à son tour appellera Qt3DCore::QAbstractAspect::onRegistered() ;

La boucle de simulation est lancée dès qu'une racine Qt3DCore::QEntity est définie sur le site Qt3DCore::QAspectEngine. Elle est suivie d'un appel à onEngineStartup() sur chaque aspect afin qu'ils puissent commencer leur travail de simulation.

La boucle de simulation est arrêtée lorsque l'entité racine est définie sur Qt3DCore::QEntityPtr(). Ceci appelle onEngineShutdown() sur chaque aspect afin qu'ils puissent arrêter leur travail de simulation.

La définition d'une nouvelle entité racine valide redémarre la boucle de simulation.

Documentation des fonctions membres

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

Construit un nouveau QAspectEngine avec parent.

[virtual noexcept] QAspectEngine::~QAspectEngine()

Détruit le moteur.

Qt3DCore::QAbstractAspect *QAspectEngine::aspect(const QString &name) const

Renvoie l'aspect correspondant à l'élément name

Note : L'aspect doit avoir été enregistré par son nom.

QList<Qt3DCore::QAbstractAspect *> QAspectEngine::aspects() const

Renvoie les aspects appartenant au moteur d'aspect.

QVariant QAspectEngine::executeCommand(const QString &command)

Exécute la commande command sur le moteur d'aspect. Les commandes valides sont

  • "list aspects"

Renvoie la réponse à la commande.

void QAspectEngine::processFrame()

Si vous utilisez le mode manuel, cette fonction exécute les tâches pour chaque aspect. Elle est bloquante et ne revient pas tant que toutes les tâches n'ont pas été exécutées.

Si vous utilisez la fonction QRenderAspect,

void QAspectEngine::registerAspect(Qt3DCore::QAbstractAspect *aspect)

Enregistre un nouveau aspect auprès de l'AspectManager. Le QAspectEngine devient propriétaire de l'aspect et le supprime lorsqu'il n'est plus enregistré.

void QAspectEngine::registerAspect(const QString &name)

Enregistre un nouvel aspect auprès de l'AspectManager sur la base de son site name Utilise la fabrique d'aspects actuellement définie pour créer l'instance d'aspect actuelle.

Qt3DCore::QEntityPtr QAspectEngine::rootEntity() const

Renvoie l'entité racine du moteur d'aspect.

Voir aussi setRootEntity().

void QAspectEngine::setRootEntity(Qt3DCore::QEntityPtr root)

Définit l'entité root pour le moteur d'aspect.

Voir aussi rootEntity().

void QAspectEngine::unregisterAspect(Qt3DCore::QAbstractAspect *aspect)

Désenregistrement et suppression de l'adresse aspect.

void QAspectEngine::unregisterAspect(const QString &name)

Désenregistre et supprime l'aspect avec l'adresse name.

Non-membres apparentés

QEntityPtr

Un pointeur partagé pour QEntity.

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