本页内容

ObjectPicker QML Type

ObjectPicker 类会实例化一个组件,该组件可通过一种称为“选择”的过程与实体进行交互。更多内容...

Import Statement: import Qt3D.Render 2.12
In C++: QObjectPicker
Status: Deprecated

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

属性

信号

详细说明

对于每种视口与摄像机的组合,拾取操作会向场景中投射一条光线,以查找其包围体与该光线发生相交的实体。包围体的计算基于几何体中 `boundingVolumePositionAttribute` 属性所指定的属性缓冲区中的值。

当由 `pickAttribute` 属性定义的边界体积与光线发生相交时,将触发以下信号:pressed()、released()、clicked()、moved()、entered() 以及exited()。

大多数信号都携带一个 `PickEvent ` 实例。如果将 `PickingSettings.pickMode` 设置为 `PickingSettings.TrianglePicking`,则 `pick` 参数的实际类型将为 `PickTriangleEvent`。

拾取查询在鼠标按下和释放时执行。如果启用了拖动功能,则在按住任何按钮时,每次鼠标移动也会触发查询。如果启用了悬停功能,即使未按下任何按钮,每次鼠标移动也会触发查询。

注意:要在 QtQuick 中接收悬停事件,还必须设置Scene3D 的hoverEnabled 属性。

注意: 不应共享此组件的实例, 不遵守此条件极有可能导致未定义的行为。

注意:摄像机的 远平面值会影响选中操作,如果该值大于 ~100 000,则会因浮点精度问题导致结果不正确。

另请参阅 PickingSettings 、Geometry 、Attribute 、PickEvent 、PickTriangleEvent 以及NoPicking 。

属性文档

containsMouse : bool [read-only]

指定对象选择器当前是否包含鼠标

dragEnabled : bool

hoverEnabled : bool

指定是否启用悬停效果

pressed : bool [read-only]

指定对象选择器当前是否被按下

priority : int

当 PickingSettings.pickResultMode 设置为 PickingSettings.PriorityPick 时,用于按优先级过滤拣货结果的优先级。

Signal 文档

clicked(PickEvent pick)

当鼠标点击时,由 pickAttribute 属性定义的包围体与光线发生相交,此时会触发此信号。可通过pick 参数获取相交信息。

注意: 相应的处理程序 为onClicked 。

entered()

当由 pickAttribute 属性定义的包围体与进入该包围体的鼠标光线发生相交时,会发出此信号。

注意: 对应的处理程序 是onEntered 。

exited()

当由 pickAttribute 属性定义的包围体与从该包围体射出的光线发生相交时,会发出此信号。

注意: 对应的处理程序 为onExited 。

moved(PickEvent pick)

当鼠标按键状态下移动时,由 pickAttribute 属性定义的包围体与光线发生交割,系统将发出此信号。可通过pick 参数获取交割信息。

注意: 相应的处理程序 是 `onMoved`。

pressed(PickEvent pick)

当由 pickAttribute 属性定义的包围体积与鼠标点击时产生的射线发生相交时,会发出此信号。可通过pick 参数获取相交信息。

注意: 相应的处理程序 是onPressed 。

released(PickEvent pick)

当由 pickAttribute 属性定义的包围体在鼠标释放时与一条光线发生相交时,会发出此信号。可通过pick 参数获取相交信息。

注意: 相应的处理程序 为onReleased 。

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