ObjectPicker QML Type
ObjectPicker 类实例化了一个组件,可用于通过称为 "拾取 "的过程与实体进行交互。更多
Import Statement: | import Qt3D.Render 2.9 |
In C++: | QObjectPicker |
Status: | Deprecated |
属性
- containsMouse : bool
- dragEnabled : bool
- hoverEnabled : bool
- pressed : bool
- priority : int
信号
- clicked(PickEvent pick)
- entered()
- exited()
- moved(PickEvent pick)
- pressed(PickEvent pick)
- released(PickEvent pick)
详细说明
对于视口和摄像机的每种组合,Picking 都会在场景中投射一条射线,以查找与射线相交的实体边界体。边界体积是使用几何体的边界体积位置属性(boundingVolumePositionAttribute)指定的属性缓冲区中的值计算得出的。
当 pickAttribute 属性定义的包围体与射线相交时,会发出pressed(),released(),clicked(),moved(),entered() 和exited() 信号。
大多数信号都带有一个PickEvent 实例。如果PickingSettings.pickMode 设置为PickingSettings.TrianglePicking,拾取参数的实际类型将是PickTriangleEvent 。
拾取查询在按下和松开鼠标时进行。如果启用了拖动,则在按下任何按钮时,每次移动鼠标时也会进行查询。如果启用了悬停,即使没有按下按钮,每次移动鼠标时也会进行查询。
注: 要在QtQuick 中接收悬停事件,还必须设置 Scene3D 的hoverEnabled 属性。
注: 此组件的实例不应共享,否则很可能导致未定义的行为。
注: 相机远平面值会影响拾取,如果大于 ~100 000,则会因浮点精度而产生不正确的结果。
另请参阅 PickingSettings,Geometry,Attribute,PickEvent,PickTriangleEvent 和NoPicking 。
属性文档
containsMouse : bool |
指定对象选取器当前是否包含鼠标
dragEnabled : bool |
hoverEnabled : bool |
指定是否启用了悬停
pressed : bool |
指定对象选取器当前是否按下
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.