class QAspectEngine#

负责处理与场景注册的所有 QAbstractAspect 子类。 更多

Inheritance diagram of PySide6.Qt3DCore.Qt3DCore.QAspectEngine

摘要#

方法#

注意

本文档可能包含从C++自动转换为Python的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建票据来告知我们。

详细描述#

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

通过调用Qt3DCore::QAspectEngine::registerAspect(),可以注册QAbstractAspect派生类,这将负责注册方面,进而会调用Qt3DCore::QAbstractAspect::onRegistered();

一旦在QAspectEngine上设置了根QEntity,就会启动模拟循环。然后对每个方面调用onEngineStartup(),以便它们可以开始它们的模拟工作。

当将根实体设置为Qt3DCore::QEntityPtr()时,模拟循环会停止。这将调用每个方面的onEngineShutdown(),以便它们可以停止进行模拟操作。

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

class RunMode#
__init__([parent=None])#
参数:

parentQObject

使用parent构建一个新的QAspectEngine

aspect(name)#
参数:

name – str

返回类型:

QAbstractAspect

返回匹配的方面

注意

要求该方面已通过名称进行注册

aspects()#
返回类型:

返回 Qt3DCore.QAbstractAspect 的列表

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

executeCommand(command)#
参数:

command – str

返回类型:

对象

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

  • “list aspects”

返回命令的回复。

lookupNode(id)#
参数:

idQNodeId

返回类型:

QNode

lookupNodes(ids)#
参数:

ids – .list of Qt3DCore.QNodeId

返回类型:

返回一个 Qt3DCore.QNode 的列表

processFrame()#

如果使用手动运行模式,此函数将为每个方面执行作业。它是阻塞的,直到所有作业完成才返回。

如果您正在使用 QRenderAspect,

registerAspect(aspect)#
参数:

aspectQAbstractAspect

将新的 aspect 注册到 AspectManager 中。QAspectEngine 取得方面的所有权,并在方面注销时会删除它。

registerAspect(name)
参数:

name – str

根据其 name 在 AspectManager 中注册一个新的方面。使用当前设置的方面工厂创建实际的方面实例。

rootEntity()#
返回类型:

QSharedPointer

返回方面引擎的根实体。

另请参阅

setRootEntity()

runMode()#
返回类型:

运行模式

setRootEntity(root)#
参数:

rootQSharedPointer

设置方面引擎的 root 实体。

另请参阅

rootEntity()

setRunMode(mode)#
参数:

modeRunMode

unregisterAspect(aspect)#
参数:

aspectQAbstractAspect

注销并删除指定的 aspect

unregisterAspect(name)
参数:

name – str

注销并删除具有指定 name 的 aspect。