ObjectPicker QML Type

ObjectPicker 类实例化了一个组件,可用于通过称为 "拾取 "的过程与实体进行交互。更多

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

属性

信号

详细说明

对于视口和摄像机的每种组合,Picking 都会在场景中投射一条射线,以查找与射线相交的实体边界体。边界体积是使用几何体的边界体积位置属性(boundingVolumePositionAttribute)指定的属性缓冲区中的值计算得出的。

当 pickAttribute 属性定义的包围体与射线相交时,会发出pressed(),released(),clicked(),moved(),entered() 和exited() 信号。

大多数信号都带有一个PickEvent 实例。如果PickingSettings.pickMode 设置为PickingSettings.TrianglePicking,拾取参数的实际类型将是PickTriangleEvent

拾取查询在按下和松开鼠标时进行。如果启用了拖动,则在按下任何按钮时,每次移动鼠标时也会进行查询。如果启用了悬停,即使没有按下按钮,每次移动鼠标时也会进行查询。

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

注: 此组件的实例不应共享,否则很可能导致未定义的行为。

注: 相机远平面值会影响拾取,如果大于 ~100 000,则会因浮点精度而产生不正确的结果。

另请参阅 PickingSettings,Geometry,Attribute,PickEvent,PickTriangleEventNoPicking

属性文档

containsMouse : bool [read-only]

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


dragEnabled : bool


hoverEnabled : bool

指定是否启用了悬停


pressed : bool [read-only]

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


priority : int

PickingSettings.pickResultMode 设置为PickingSettings.PriorityPick 时,按优先级筛选拾取结果时使用的优先级。


信号文档

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


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