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 } |
属性
- filterMode : FilterMode
公共函数
| 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::AcceptAnyMatchingLayers | 0 | 接受引用一个或多个已添加到此QLayerFilter 中的QLayer 对象的实体。这是默认设置 |
Qt3DRender::QLayerFilter::AcceptAllMatchingLayers | 1 | 接受引用已添加到此 中的所有QLayer 对象的实体QLayerFilter |
Qt3DRender::QLayerFilter::DiscardAnyMatchingLayers | 2 | 丢弃引用添加到此 中的一个或多个QLayer 对象的实体QLayerFilter |
Qt3DRender::QLayerFilter::DiscardAllMatchingLayers | 3 | 丢弃引用了添加到此处的所有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.