Qt3DRender::Quick::QScene2D Class
class Qt3DRender::Quick::QScene2D该类可将 qml 渲染成纹理,然后用作 3D 场景的一部分。更多
头文件: | #include <Qt3DQuickScene2D/QScene2D> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dquickscene2d) target_link_libraries(mytarget PRIVATE Qt6::3dquickscene2d) |
qmake: | QT += 3dquickscene2d |
在 QML 中: | Scene2D |
继承: | Qt3DCore::QNode |
状态: | 已废弃 |
公共类型
enum | RenderPolicy { Continuous, SingleShot } |
属性
- item : QQuickItem*
- mouseEnabled : bool
- output : Qt3DRender::QRenderTargetOutput*
- renderPolicy : RenderPolicy
公共功能
QScene2D(Qt3DCore::QNode *parent = nullptr) | |
void | addEntity(Qt3DCore::QEntity *entity) |
QList<Qt3DCore::QEntity *> | entities() const |
bool | isMouseEnabled() const |
QQuickItem * | item() const |
Qt3DRender::QRenderTargetOutput * | output() const |
void | removeEntity(Qt3DCore::QEntity *entity) |
Qt3DRender::Quick::QScene2D::RenderPolicy | renderPolicy() const |
公共插槽
void | setItem(QQuickItem *item) |
void | setMouseEnabled(bool enabled) |
void | setOutput(Qt3DRender::QRenderTargetOutput *output) |
void | setRenderPolicy(Qt3DRender::Quick::QScene2D::RenderPolicy policy) |
信号
void | itemChanged(QQuickItem *item) |
void | mouseEnabledChanged(bool enabled) |
void | outputChanged(Qt3DRender::QRenderTargetOutput *output) |
void | renderPolicyChanged(Qt3DRender::Quick::QScene2D::RenderPolicy policy) |
详细说明
该类使用QQuickRenderControl 将给定的QQuickItem 渲染成屏幕外表面,该表面与用户提供的纹理相连。这样,组件就可以直接渲染到纹理中,而无需中间复制,用户也可以自由指定纹理在三维场景中的使用方式。
使用 QScene2D 的实体可与该类关联,以实现与项目的交互;如果实体有一个QObjectPicker 组件,则该拾取器的拾取事件会发送到 QScene2D,并转换为鼠标事件,最后发送到项目。
注意: 只支持鼠标事件。项目不支持键盘输入。
属性文档
item : QQuickItem*
保存QQuickItem ,通过QScene2D 渲染纹理。
访问功能:
QQuickItem * | item() const |
void | setItem(QQuickItem *item) |
通知信号:
void | itemChanged(QQuickItem *item) |
mouseEnabled : bool
显示渲染项目是否已启用鼠标事件。鼠标事件由添加到QScene2D 的实体的对象拾取事件产生。默认情况下鼠标事件是启用的。
注: 由于对象拾取是在后台进行的,因此事件会延迟一帧。
访问功能:
bool | isMouseEnabled() const |
void | setMouseEnabled(bool enabled) |
通知信号:
void | mouseEnabledChanged(bool enabled) |
output : Qt3DRender::QRenderTargetOutput*
保存QRenderTargetOutput ,用于指定QScene2D 的渲染位置。
访问功能:
Qt3DRender::QRenderTargetOutput * | output() const |
void | setOutput(Qt3DRender::QRenderTargetOutput *output) |
通知信号:
void | outputChanged(Qt3DRender::QRenderTargetOutput *output) |
renderPolicy : RenderPolicy
保存此Scene2D 的渲染策略。
访问功能:
Qt3DRender::Quick::QScene2D::RenderPolicy | renderPolicy() const |
void | setRenderPolicy(Qt3DRender::Quick::QScene2D::RenderPolicy policy) |
Notifier 信号:
void | renderPolicyChanged(Qt3DRender::Quick::QScene2D::RenderPolicy policy) |
成员函数 文档
[explicit]
QScene2D::QScene2D(Qt3DCore::QNode *parent = nullptr)
构造函数使用指定的parent 创建一个新的 QScene2D 实例。
void QScene2D::addEntity(Qt3DCore::QEntity *entity)
为QScene2D 对象添加一个entity 。如果实体有QObjectPicker ,则该实体的拾取事件会发送到QScene2D ,并转换为鼠标事件。
QList<Qt3DCore::QEntity *> QScene2D::entities() const
检索与QScene2D 相关的实体。
void QScene2D::removeEntity(Qt3DCore::QEntity *entity)
从QScene2D 对象中删除entity 。
© 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.