QAspectEngine 类

Qt3DCore::QAspectEngine

负责处理已在场景中注册的所有 QAbstractAspect 子类。 更多...

头文件 #include <Qt3DCore/QAspectEngine>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3DCore)
target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmakeQT += 3dcore
继承 QObject

公共函数

QAspectEngine(QObject *parent = nullptr)
virtual~QAspectEngine()
Qt3DCore::QAbstractAspect *aspect(const QString &name) const
QList<Qt3DCore::QAbstractAspect *>aspects() const
QVariantexecuteCommand(const QString &command)
voidprocessFrame()
voidregisterAspect(Qt3DCore::QAbstractAspect *aspect)
voidregisterAspect(const QString &name)
Qt3DCore::QEntityPtrrootEntity() const
voidsetRootEntity(Qt3DCore::QEntityPtr root)
voidunregisterAspect(Qt3DCore::QAbstractAspect *aspect)
voidunregisterAspect(const QString &name)

详细说明

Qt3D 运行循环由 Qt3DRender::QAspectEngine 控制。

Qt3DCore::QAbstractAspect 子类可以通过调用 Qt3DCore::QAspectEngine::registerAspect() 进行注册,它会负责注册方面,然后调用 Qt3DCore::QAbstractAspect::onRegistered();

Qt3DCore::QEntity 被设置在 Qt3DCore::QAspectEngine 上时立即启动模拟循环。这之后,对每个方面调用 onEngineStartup(),以便它们可以开始模拟工作。

将根实体设置为 Qt3DCore::QEntityPtr() 时停止模拟循环。这将在每个方面上调用 onEngineShutdown(),以便它们停止执行模拟工作。

设置新的有效根实体将再次重新启动模拟循环。

成员函数文档

[显式] QAspectEngine::QAspectEngine(QObject *parent = nullptr)

使用 parent 构造一个新的 QAspectEngine。

[虚拟 noexcept] QAspectEngine::~QAspectEngine()

销毁该引擎。

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

返回匹配的 名称

注意:需要已按名称注册该方面

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

返回由方面引擎拥有的方面。

QVariant QAspectEngine::executeCommand(const QString &command)

在方面引擎上执行给定的 命令。有效的命令有

  • "list aspects"

返回命令的回复。

void QAspectEngine::processFrame()

如果使用手动运行模式,该函数将执行每个方面的作业。它是阻塞的,并且不会返回,直到所有作业都已完成。

如果您使用的是 QRenderAspect,

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

将新 方面 注册到方面管理器。 QAspectEngine 负责拥有该方面,当方面取消注册时将删除它。

void QAspectEngine::registerAspect(const QString &name)

根据其 名称 将新方面注册到方面管理器。使用当前设置的方面工厂来创建实际的方面实例。

Qt3DCore::QEntityPtr QAspectEngine::rootEntity() const

返回方面引擎的根实体。

另请参阅:setRootEntity()。

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

为方面引擎设置 实体。

另请参阅:rootEntity()。

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

注销并删除给定的 方面

void QAspectEngine::unregisterAspect(const QString &name)

注销并删除具有给定 名称 的方面。

相关非成员

QEntityPtr

用于 QEntity 的共享指针。

© 2024 Qt公司有限版权。其中包含的文档贡献为各自所有者的版权。本部分提供的文档受自由软件基金会发布的GNU自由文档许可证v1.3版本条款的许可。Qt及其相应标志是Qt公司在芬兰以及全球其他国家的商标。GNU自由文档许可证v1.3由自由软件基金会发布。Qt及其相应标志是芬兰的Qt公司和其他国家的商标。所有其他商标均为其各自所有者的财产。