QScene2D 类

class Qt3DRender::Quick::QScene2D

这个类允许将 qml 渲染到纹理中,然后将纹理作为 3D 场景的一部分使用。《更多...》

头文件 #include <Qt3DQuickScene2D/QScene2D>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3dquickscene2d)
target_link_libraries(mytarget PRIVATE Qt6::3dquickscene2d)
qmakeQT += 3dquickscene2d
实例化自 Scene2D
继承自 Qt3DCore::QNode

公共类型

枚举RenderPolicy { Continuous, SingleShot }

属性

公共函数

QScene2D(Qt3DCore::QNode *parent = nullptr)
voidaddEntity(Qt3DCore::QEntity *entity)
QList<Qt3DCore::QEntity *>entities() const
boolisMouseEnabled() const
QQuickItem *item() const
Qt3DRender::QRenderTargetOutput *output() const
voidremoveEntity(Qt3DCore::QEntity *entity)
Qt3DRender::Quick::QScene2D::RenderPolicyrenderPolicy() const

公共槽函数

voidsetItem(QQuickItem *item)
voidsetMouseEnabled(bool enabled)
voidsetOutput(Qt3DRender::QRenderTargetOutput *output)
voidsetRenderPolicy(Qt3DRender::Quick::QScene2D::RenderPolicy policy)

信号

voiditemChanged(QQuickItem *item)
voidmouseEnabledChanged(bool enabled)
voidoutputChanged(Qt3DRender::QRenderTargetOutput *output)
voidrenderPolicyChanged(Qt3DRender::Quick::QScene2D::RenderPolicy policy)

详细描述

此类使用QQuickRenderControl将给定的QQuickItem渲染到用户提供的离屏表面上,该表面附加到纹理。这允许组件直接将纹理渲染进去,而无需中间复制,并允许用户自由指定在3D场景中对纹理的使用方式。

使用QScene2D的实体可以关联到该类,以启用与项目的交互;如果实体具有QObjectPicker组件,则从该拾取器发出的拾取事件将被发送到QScene2D,并转换为鼠标事件,最终发送到项目。

注意:仅支持鼠标事件。项目不支持键盘输入。

成员类型文档

枚举 QScene2D::RenderPolicy

此枚举类型描述了可用的渲染策略类型。

常量描述
Qt3DRender::Quick::QScene2D::Continuous0Scene2D正在连续渲染。这是默认渲染策略。
Qt3DRender::Quick::QScene2D::SingleShot1Scene2D只渲染到纹理一次,然后释放为渲染分配的资源。

属性文档

item : QQuickItem*

包含由QScene2D渲染到纹理的QQuickItem

访问函数

QQuickItem *item() const
voidsetItem(QQuickItem *item)

通知信号

voiditemChanged(QQuickItem *item)

mouseEnabled : bool

包含是否为渲染的项目启用鼠标事件。鼠标事件是从添加到QScene2D的实体对象的拾取事件生成的。默认启用鼠标事件。

注意:由于后端发生对象拾取,事件会延迟一帧。

访问函数

boolisMouseEnabled() const
voidsetMouseEnabled(bool enabled)

通知信号

voidmouseEnabledChanged(bool enabled)

output : Qt3DRender::QRenderTargetOutput*

包含指定QScene2D渲染到的QRenderTargetOutput

访问函数

Qt3DRender::QRenderTargetOutput *output() const
voidsetOutput(Qt3DRender::QRenderTargetOutput *output)

通知信号

voidoutputChanged(Qt3DRender::QRenderTargetOutput *output)

renderPolicy : RenderPolicy

包含Scene2D的渲染策略。

访问函数

Qt3DRender::Quick::QScene2D::RenderPolicyrenderPolicy() const
voidsetRenderPolicy(Qt3DRender::Quick::QScene2D::RenderPolicy policy)

通知信号

voidrenderPolicyChanged(Qt3DRender::Quick::QScene2D::RenderPolicy policy)

成员函数文档

[显式] QScene2D::QScene2D(Qt3DCore::QNode *parent = nullptr)

构造函数创建了一个新的具有指定parent的QScene2D实例。

void QScene2D::addEntity(Qt3DCore::QEntity *entity)

QScene2D对象添加一个实体。如果实体具有QObjectPicker,则从该实体发出的选择事件将被发送到QScene2D并转换为鼠标事件。

QList<Qt3DCore::QEntity *> QScene2D::entities() const

检索与QScene2D关联的实体。

void QScene2D::removeEntity(Qt3DCore::QEntity *entity)

QScene2D对象中删除一个实体

© 2024 The Qt Company Ltd. 内部包含的文档贡献者是各自所有者的版权。提供的文档使用GNU自由文档许可协议版本1.3许可,由自由软件基金会发布。Qt和相关标志是The Qt Company Ltd在芬兰和/或世界其他国家的商标。所有其他商标均为各自所有者的财产。