本页内容

Qt3DRender::QLayerFilter Class

class Qt3DRender::QLayerFilter

控制在帧图分支中绘制的图层。更多...

标题: #include <qlayerfilter.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: LayerFilter
继承自: Qt3DRender::QFrameGraphNode
状态: 已弃用

该类已弃用。我们强烈建议不要在新代码中使用它。

公共类型

enum FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers }

属性

公共函数

QLayerFilter(Qt3DCore::QNode *parent = nullptr)
void addLayer(Qt3DRender::QLayer *layer)
Qt3DRender::QLayerFilter::FilterMode filterMode() const
QList<Qt3DRender::QLayer *> layers() const
void removeLayer(Qt3DRender::QLayer *layer)
void setFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

信号

void filterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

详细说明

Qt3DRender::QLayerFilter 可用于指示渲染器在帧图的该分支中绘制哪些图层。QLayerFilter 会根据添加到 QLayerFilter 中的QLayer 实例,以及作为Qt3DCore::QEntity 组件的 实例,来选择要绘制的实体。

QLayerFilter 可配置为根据 `filterMode ` 属性,选择或忽略具有特定 `QLayer ` 的实体。默认情况下,引用了 `QLayer ` 对象之一且该对象同时被 `QLayerFilter ` 引用的实体会被选中(AcceptAnyMatchingLayers )。

在 FrameGraph 树中,从根节点到叶节点的分支内可以嵌套多个QLayerFilter 节点。 在这种情况下,过滤将首先对场景中的所有实体应用由第一个声明的QLayerFilter 指定的过滤方法。随后,经过过滤的实体子集将根据第二个声明的QLayerFilter 上设置的过滤方法再次进行过滤。此过程将反复进行,直至该分支中的所有QLayerFilter 节点均被处理完毕。

成员类型文档

enum QLayerFilter::FilterMode

指定用于选择要绘制的实体的规则。

常量值描述
Qt3DRender::QLayerFilter::AcceptAnyMatchingLayers0接受引用一个或多个已添加到此QLayerFilter 中的QLayer 对象的实体。这是默认设置
Qt3DRender::QLayerFilter::AcceptAllMatchingLayers1接受引用已添加到此 中的所有QLayer 对象的实体QLayerFilter
Qt3DRender::QLayerFilter::DiscardAnyMatchingLayers2丢弃引用添加到此 中的一个或多个QLayer 对象的实体QLayerFilter
Qt3DRender::QLayerFilter::DiscardAllMatchingLayers3丢弃引用了添加到此处的所有QLayer 对象的实体QLayerFilter

属性文档

filterMode : FilterMode

存储用于指定要选中并绘制的实体的过滤模式。

默认值为 AcceptMatchingLayers。

访问函数:

Qt3DRender::QLayerFilter::FilterMode filterMode() const
void setFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)

通知信号:

void filterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)

成员函数文档

[explicit] QLayerFilter::QLayerFilter(Qt3DCore::QNode *parent = nullptr)

该构造函数会根据指定的parent 创建一个实例。

void QLayerFilter::addLayer(Qt3DRender::QLayer *layer)

将layer 添加到当前图层列表中

QList<Qt3DRender::QLayer *> QLayerFilter::layers() const

返回当前图层列表

void QLayerFilter::removeLayer(Qt3DRender::QLayer *layer)

从当前图层列表中移除“layer ”

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