PySide6.Qt3DRender.Qt3DRender.QObjectPicker

class QObjectPicker

QObjectPicker 类实例化了一个组件,该组件可以通过称为拾取的过程与 QEntity 进行交互。更多

PySide6.Qt3DRender.Qt3DRender.QObjectPicker 的继承图

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

对于每个视口和相机的组合,拾取操作会投射一条射线穿过场景,以找到其边界体积与射线相交的实体。边界体积是使用几何体的boundingVolumePositionAttribute指定的属性缓冲区中的值计算的。

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

大多数信号携带一个QPickEvent实例。如果QPickingSettings::pickMode()设置为TrianglePicking,则pick参数的实际类型将是QPickTriangleEvent

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

对于广义的光线投射查询,请参见 QRayCasterQScreenRayCaster

注意

此组件的实例不应共享,不遵守此条件很可能会导致未定义的行为。

注意

相机远平面值如果大于约100 000,会影响拾取并由于浮点精度问题产生不正确的结果。

另请参阅

QPickingSettings QGeometry QAttribute QPickEvent QPickTriangleEvent QNoPicking

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property containsMouseᅟ: bool

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

Access functions:
property dragEnabledᅟ: bool

指定是否启用拖动

Access functions:
property hoverEnabledᅟ: bool

指定是否启用悬停

Access functions:
property pressedᅟ: bool

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

Access functions:
property priorityᅟ: int

pickResultMode设置为NearestPriorityPick时,用于按优先级过滤拾取结果的优先级。

Access functions:
__init__([parent=None])
Parameters:

parentQNode

clicked(pick)
Parameters:

pickQPickEvent

当由pickAttribute属性定义的边界体积与鼠标点击时的射线相交时,会发出此信号。QPickEvent pick 包含事件的详细信息。

containsMouse()
Return type:

布尔

如果对象选择器当前包含鼠标,则返回 true

属性 containsMouseᅟ 的获取器。

containsMouseChanged(containsMouse)
Parameters:

containsMouse – 布尔值

属性 containsMouseᅟ 的通知信号。

dragEnabledChanged(dragEnabled)
Parameters:

dragEnabled – 布尔值

属性 dragEnabledᅟ 的通知信号。

entered()

当由pickAttribute属性定义的边界体积与鼠标进入体积时的射线相交时,会发出此信号。

exited()

当由pickAttribute属性定义的边界体积与射线在离开体积时相交时,会发出此信号。

hoverEnabledChanged(hoverEnabled)
Parameters:

hoverEnabled – 布尔值

属性 hoverEnabledᅟ 的通知信号。

isDragEnabled()
Return type:

布尔

如果启用了拖动,则返回 true

属性 dragEnabledᅟ 的获取器。

isHoverEnabled()
Return type:

布尔

如果启用悬停则返回 true

属性 hoverEnabledᅟ 的获取器。

isPressed()
Return type:

布尔

属性 pressedᅟ 的获取器。

moved(pick)
Parameters:

pickQPickEvent

当由pickAttribute属性定义的边界体积与按下按钮的鼠标移动时的射线相交时,会发出此信号。QPickEvent pick 包含事件的详细信息。

pressed(pick)
Parameters:

pickQPickEvent

当由pickAttribute属性定义的边界体积与鼠标按下时的射线相交时,会发出此信号。QPickEvent pick 包含事件的详细信息。

pressedChanged(pressed)
Parameters:

pressed – 布尔值

属性 pressedᅟ 的通知信号。

priority()
Return type:

整数

另请参阅

setPriority()

属性 priorityᅟ 的获取器。

priorityChanged(priority)
Parameters:

priority – int

属性 priorityᅟ 的通知信号。

released(pick)
Parameters:

pickQPickEvent

当由pickAttribute属性定义的边界体积与鼠标释放时的射线相交时,会发出此信号。QPickEvent pick 包含事件的详细信息。

setDragEnabled(dragEnabled)
Parameters:

dragEnabled – 布尔值

dragEnabled属性设置为dragEnabled

另请参阅

isDragEnabled()

属性 dragEnabledᅟ 的设置器。

setHoverEnabled(hoverEnabled)
Parameters:

hoverEnabled – 布尔值

hoverEnabled属性设置为hoverEnabled

另请参阅

isHoverEnabled()

属性 hoverEnabledᅟ 的设置器。

setPriority(priority)
Parameters:

priority – int

设置选择器的优先级为priority。当QPickingSettings上的选择结果模式设置为NearestPriorityPick时使用此设置。选择结果按最高优先级和最短选择距离排序。

另请参阅

priority()

属性 priorityᅟ 的设置器。