QAspectEngine Class

class Qt3DCore::QAspectEngine

Verantwortlich für die Handhabung aller QAbstractAspect Unterklassen, die in der Szene registriert wurden. Mehr...

Kopfzeile: #include <Qt3DCore/QAspectEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3DCore)
target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmake: QT += 3dcore
Vererbt: QObject
Status: Veraltet

Öffentliche Funktionen

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)

Detaillierte Beschreibung

Die Qt3D-Laufschleife wird von der Qt3DRender::QAspectEngine gesteuert.

Qt3DCore::QAbstractAspect Unterklassen können durch den Aufruf von Qt3DCore::QAspectEngine::registerAspect() registriert werden, die sich um die Registrierung des Aspekts kümmert und ihrerseits Qt3DCore::QAbstractAspect::onRegistered() aufruft;

Die Simulationsschleife wird gestartet, sobald ein Root Qt3DCore::QEntity auf Qt3DCore::QAspectEngine gesetzt wird. Danach folgt ein Aufruf von onEngineStartup() für jeden Aspekt, damit dieser seine Simulationsarbeit beginnen kann.

Die Simulationsschleife wird angehalten, wenn die Root-Entität auf Qt3DCore::QEntityPtr() gesetzt wird. Dies ruft onEngineShutdown() auf jedem Aspekt auf, so dass sie ihre Simulationsarbeit beenden können.

Das Setzen einer neuen gültigen Root-Entität würde die Simulationsschleife erneut starten.

Dokumentation der Mitgliedsfunktionen

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

Konstruiert eine neue QAspectEngine mit parent.

[virtual noexcept] QAspectEngine::~QAspectEngine()

Zerstört den Motor.

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

Gibt den Aspekt zurück, der dem Parameter name

Hinweis: Erforderlich ist, dass der Aspekt mit seinem Namen registriert wurde.

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

Gibt die Aspekte zurück, die im Besitz der Aspekt-Engine sind.

QVariant QAspectEngine::executeCommand(const QString &command)

Führt den angegebenen command auf der Aspektmaschine aus. Gültige Befehle sind:

  • "Aspekte auflisten"

Gibt die Antwort auf den Befehl zurück.

void QAspectEngine::processFrame()

Wenn Sie den manuellen Laufmodus verwenden, führt diese Funktion die Aufträge für jeden Aspekt aus. Sie ist blockierend und kehrt erst zurück, wenn alle Aufträge abgeschlossen sind.

Wenn Sie die Funktion QRenderAspect,

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

Registriert einen neuen aspect beim AspectManager. QAspectEngine übernimmt die Verantwortung für den Aspekt und löscht ihn, wenn die Registrierung aufgehoben wird.

void QAspectEngine::registerAspect(const QString &name)

Registriert einen neuen Aspekt beim AspectManager auf der Grundlage seiner name. Verwendet die aktuell eingestellte Aspektfabrik, um die aktuelle Aspektinstanz zu erstellen.

Qt3DCore::QEntityPtr QAspectEngine::rootEntity() const

Liefert die Wurzelentität der Aspektmaschine.

Siehe auch setRootEntity().

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

Legt die Entität root für die Aspektmaschine fest.

Siehe auch rootEntity().

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

Deregistriert und löscht die angegebene aspect.

void QAspectEngine::unregisterAspect(const QString &name)

Deregistriert und löscht den Aspekt mit der angegebenen name.

Verwandte Nicht-Mitglieder

QEntityPtr

Ein gemeinsamer Zeiger für QEntity.

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