本页内容

Qt3DRender::QPickingSettings Class

class Qt3DRender::QPickingSettings

QPickingSettings 类规定了如何处理实体挑选。更多内容...

头文件: #include <qpickingsettings.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: PickingSettings
继承自: Qt3DCore::QNode
状态: 已弃用

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

公共类型

enum FaceOrientationPickingMode { FrontFace, BackFace, FrontAndBackFace }
enum PickMethod { BoundingVolumePicking, TrianglePicking, LinePicking, PointPicking, PrimitivePicking }
enum PickResultMode { NearestPick, AllPicks, NearestPriorityPick }

属性

公共函数

Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode() const
Qt3DRender::QPickingSettings::PickMethod pickMethod() const
Qt3DRender::QPickingSettings::PickResultMode pickResultMode() const
float worldSpaceTolerance() const

公共槽位

void setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
void setPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)
void setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)
void setWorldSpaceTolerance(float worldSpaceTolerance)

信号

void faceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)
void pickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)
void pickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)
void worldSpaceToleranceChanged(float worldSpaceTolerance)

详细说明

“选择”设置决定了如何处理实体选择。有关实体选择的更多详细信息,请参阅QObjectPicker 和QRayCaster 中的组件文档。

使用QObjectPicker 组件时,拾取由鼠标事件触发。

使用QRayCaster 或QScreenRayCaster 组件时,应用程序可以显式触发拾取。

在这两种情况下,系统都会向场景中投射一条光线,以查找与该光线相交的几何体。

另请参阅 QObjectPicker 、QPickEvent 、QPickTriangleEvent 、QRayCaster 以及QScreenRayCaster 。

成员类型文档

enum QPickingSettings::FaceOrientationPickingMode

指定面方向如何影响三角形选择

常量值描述
Qt3DRender::QPickingSettings::FrontFace0x01仅选择朝向前方的三角形(默认)。
Qt3DRender::QPickingSettings::BackFace0x02仅选择背向三角形。
Qt3DRender::QPickingSettings::FrontAndBackFace0x03将选取正向和背向三角形。

enum QPickingSettings::PickMethod

指定拣货方法。

常量值描述
Qt3DRender::QPickingSettings::BoundingVolumePicking0x00如果拾取射线与实体的包围体相交,则该实体被视为已被拾取(默认)。
Qt3DRender::QPickingSettings::TrianglePicking0x01如果选取射线与实体网格组件的任何三角形相交,则该实体被视为已被选取。
Qt3DRender::QPickingSettings::LinePicking0x02如果拾取射线与实体的网格组件的任何边相交,则该实体被视为已被选中。
Qt3DRender::QPickingSettings::PointPicking0x04如果拾取射线与实体的网格组件的任何点相交,则该实体被视为已被选中。
Qt3DRender::QPickingSettings::PrimitivePickingTrianglePicking | LinePicking | PointPicking如果拾取射线与实体的网格组件的任何点、边或三角形相交,则该实体被视为已被选中。

enum QPickingSettings::PickResultMode

指定拣货结果中包含的内容。

常量值描述
Qt3DRender::QPickingSettings::NearestPick0仅选择与拾取射线相交且距离拾取射线原点最近的实体(默认)。
Qt3DRender::QPickingSettings::AllPicks1选择所有与选择光线相交的实体。
Qt3DRender::QPickingSettings::NearestPriorityPick2选择其对象选择器值最高的实体。如果多个对象选择器的优先级相同,则选择距离射线最近的一个。

另请参阅 Qt3DRender::QPickEvent 。

属性文档

faceOrientationPickingMode : FaceOrientationPickingMode

指定面方向如何影响三角形选择

访问函数:

Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode() const
void setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

通知信号:

void faceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)

pickMethod : PickMethod

保存当前的选取方法。

默认情况下,出于性能考虑,光线投射将使用包围体选择。但如果一个小对象被其后方的大对象的包围球体所包围,这可能会导致意外的结果。

三角形选择将产生精确的结果,但计算成本更高。

访问函数:

Qt3DRender::QPickingSettings::PickMethod pickMethod() const
void setPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)

通知信号:

void pickMethodChanged(Qt3DRender::QPickingSettings::PickMethod pickMethod)

pickResultMode : PickResultMode

保存当前的选取结果模式。

默认情况下,仅会为距离摄像机最近的实体生成选择结果。

当将选择方法设置为“AllPicks ”时,光线沿途所有带有 QObjectPicker 的实体都会触发事件。

将选择方法设置为“NearestPriorityPick ”时,将针对光线沿途所有带有 QObjectPicker 的实体触发事件。当某个给定元素应始终被选中(即使其他元素位于其前方)时,可以使用此方法。

如果将 QObjectPicker 分配给具有多个子节点的实体,则对于每个与光线相交的子节点,都会触发一个事件。

访问函数:

Qt3DRender::QPickingSettings::PickResultMode pickResultMode() const
void setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)

通知器信号:

void pickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode pickResult)

worldSpaceTolerance : float

存储用于评估线和点选择的阈值(以模型空间坐标表示)。

访问函数:

float worldSpaceTolerance() const
void setWorldSpaceTolerance(float worldSpaceTolerance)

通知信号:

void worldSpaceToleranceChanged(float worldSpaceTolerance)

成员函数文档

[slot] void QPickingSettings::setWorldSpaceTolerance(float worldSpaceTolerance)

将用于线和点拾取的阈值设置为worldSpaceTolerance 。

注意: 这是属性worldSpaceTolerance 的设置 函数。

另请参阅 worldSpaceTolerance()。

float QPickingSettings::worldSpaceTolerance() const

返回线和点的精度 worldSpaceTolerance

注意: 这是属性 worldSpaceTolerance 的获取 函数。

另请参阅 ` setWorldSpaceTolerance()`。

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