このページでは

Qt3DRender::QObjectPicker Class

class Qt3DRender::QObjectPicker

QObjectPicker クラスは、「ピッキング」と呼ばれるプロセスを通じて QEntity とやり取りするために使用できるコンポーネントをインスタンス化します。詳細...

ヘッダー: #include <qobjectpicker.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
QML内: ObjectPicker
継承元: Qt3DCore::QComponent
ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

プロパティ

パブリック関数

bool containsMouse() const
bool isDragEnabled() const
bool isHoverEnabled() const
bool isPressed() const
int priority() const

パブリックスロット

void setDragEnabled(bool dragEnabled)
void setHoverEnabled(bool hoverEnabled)
void setPriority(int priority)

シグナル

void clicked(Qt3DRender::QPickEvent *pick)
void containsMouseChanged(bool containsMouse)
void dragEnabledChanged(bool dragEnabled)
void entered()
void exited()
void hoverEnabledChanged(bool hoverEnabled)
void moved(Qt3DRender::QPickEvent *pick)
void pressed(Qt3DRender::QPickEvent *pick)
void pressedChanged(bool pressed)
void priorityChanged(int priority)
void released(Qt3DRender::QPickEvent *pick)

詳細な説明

ビューポートとカメラのあらゆる組み合わせについて、ピッキング処理ではシーン内に光線を投射し、その光線とバウンディングボリュームが交差するエンティティを検索します。バウンディングボリュームは、ジオメトリの `boundingVolumePositionAttribute` で指定された属性バッファ内の値を使用して計算されます。

pickAttribute プロパティで定義されたバウンディングボリュームがレイと交差すると、pressed()、released()、clicked()、moved()、entered()、およびexited() シグナルがエミットされます。

ほとんどのシグナルは、QPickEvent インスタンスを伝達します。QPickingSettings::pickMode()がQPickingSettings::TrianglePicking に設定されている場合、pickパラメータの実際の型はQPickTriangleEvent となります。

ピッククエリは、マウスのクリック時およびクリック解除時に実行されます。ドラッグが有効になっている場合、いずれかのボタンが押されている間は、マウスの移動のたびにクエリが行われます。ホバーが有効になっている場合、ボタンが押されていなくても、マウスの移動のたびにクエリが行われます。

一般的なレイキャスティングクエリについては、Qt3DRender::QRayCaster およびQt3DRender::QScreenRayCaster を参照してください。

注: このコンポーネントのインスタンスは 共有しないでください。この条件を守らないと、ほぼ確実に未定義の挙動が生じます。

注: カメラの ファープレーン値は ピッキングに影響し、その値が約 100,000 を超えると、浮動小数点数の精度の問題により誤った結果が生成されることがあります。

Qt3DRender::QPickingSettings 、Qt3DCore::QGeometry 、Qt3DCore::QAttribute 、Qt3DRender::QPickEvent 、Qt3DRender::QPickTriangleEvent 、およびQt3DRender::QNoPickingも参照してください 。

プロパティのドキュメント

[read-only] containsMouse : bool

オブジェクトピッカーに現在マウスが含まれているかどうかを指定します

アクセス関数:

bool containsMouse() const

通知シグナル:

void containsMouseChanged(bool containsMouse)

dragEnabled : bool

ドラッグが有効かどうかを指定します

アクセス関数:

bool isDragEnabled() const
void setDragEnabled(bool dragEnabled)

通知シグナル:

void dragEnabledChanged(bool dragEnabled)

hoverEnabled : bool

ホバー機能が有効かどうかを指定します

アクセス関数:

bool isHoverEnabled() const
void setHoverEnabled(bool hoverEnabled)

通知シグナル:

void hoverEnabledChanged(bool hoverEnabled)

[read-only] pressed : bool

オブジェクトピッカーが現在押されているかどうかを指定します

アクセス関数:

bool isPressed() const

通知シグナル:

void pressedChanged(bool pressed)

priority : int

QPickingSettings::pickResultMode がQPickingSettings::NearestPriorityPick に設定されている場合、ピック結果を優先度でフィルタリングする際に使用する優先度です。

アクセス機能:

int priority() const
void setPriority(int priority)

通知信号:

void priorityChanged(int priority)

メンバ関数のドキュメント

[signal] void QObjectPicker::clicked(Qt3DRender::QPickEvent *pick)

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、マウスクリック時にレイと交差した際に発火します。QPickEventpick には、このイベントの詳細が含まれています。

bool QObjectPicker::containsMouse() const

オブジェクトピッカーに現在マウスが含まれている場合、true を返します

注: プロパティ `containsMouse`のゲッター関数です 。

[signal] void QObjectPicker::entered()

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、そのボリューム内に入ってくるマウスのレイと交差したときに発せられます。

[signal] void QObjectPicker::exited()

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、そのボリュームから出るレイと交差したときに発せられます。

bool QObjectPicker::isDragEnabled() const

ドラッグが有効な場合、true を返します

注: プロパティ `dragEnabled`のゲッター 関数です。

bool QObjectPicker::isHoverEnabled() const

ホバーが有効な場合、true を返します

注: プロパティ `hoverEnabled`のゲッター 関数です。

[signal] void QObjectPicker::moved(Qt3DRender::QPickEvent *pick)

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、ボタンが押された状態でマウスが移動した際のレイと交差したときに発せられます。QPickEventpick には、このイベントの詳細が含まれています。

[signal] void QObjectPicker::pressed(Qt3DRender::QPickEvent *pick)

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、マウスクリック時に射線と交差した際に発火します。QPickEventpick には、このイベントの詳細情報が含まれています。

[signal] void QObjectPicker::released(Qt3DRender::QPickEvent *pick)

このシグナルは、pickAttribute プロパティで定義されたバウンディングボリュームが、マウスボタンが離された際のレイと交差したときに発火します。QPickEventpick には、このイベントの詳細が含まれています。

[slot] void QObjectPicker::setDragEnabled(bool dragEnabled)

dragEnabled プロパティを次のように設定します。dragEnabled

注: dragEnabled プロパティのセッター 関数です。

isDragEnabled()も参照してください 。

[slot] void QObjectPicker::setHoverEnabled(bool hoverEnabled)

hoverEnabled プロパティをhoverEnabled

注: プロパティ `hoverEnabled`のセッター 関数です。

isHoverEnabled()も参照してください 。

[slot] void QObjectPicker::setPriority(int priority)

ピッカーの優先度を「priority 」に設定します。これは、QPickingSettings のピッキング結果モードが「QPickingSettings::NearestPriorityPick 」に設定されている場合に使用されます。ピッキング結果は、優先度が高い順かつピッキング距離が短い順に並べ替えられます。

注: プロパティ `priority`のセッター 関数です。

関連項目: priority()。

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