QObjectPicker Class

class Qt3DRender::QObjectPicker

Die Klasse QObjectPicker instanziiert eine Komponente, die zur Interaktion mit einem QEntity durch einen als Picking bekannten Prozess verwendet werden kann. Mehr...

Kopfzeile: #include <QObjectPicker>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: ObjectPicker
Vererbt: Qt3DCore::QComponent
Status: Veraltet

Eigenschaften

Öffentliche Funktionen

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

Öffentliche Slots

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

Signale

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)

Detaillierte Beschreibung

Für jede Kombination von Ansichtsfenster und Kamera wirft Picking einen Strahl durch die Szene, um Objekte zu finden, deren Bounding Volume den Strahl schneidet. Das Begrenzungsvolumen wird anhand der Werte im Attributpuffer berechnet, der durch das BoundingVolumePositionAttribute der Geometrie angegeben wird.

Die Signale pressed(), released(), clicked(), moved(), entered() und exited() werden ausgegeben, wenn das durch die Eigenschaft pickAttribute definierte Begrenzungsvolumen einen Strahl schneidet.

Die meisten Signale enthalten eine QPickEvent Instanz. Wenn QPickingSettings::pickMode() auf QPickingSettings::TrianglePicking gesetzt ist, wird der aktuelle Typ des Pick-Parameters QPickTriangleEvent sein.

Pick-Abfragen werden beim Drücken und Loslassen der Maus durchgeführt. Wenn Ziehen aktiviert ist, erfolgen die Abfragen auch bei jeder Mausbewegung, während eine beliebige Taste gedrückt ist. Wenn Hover aktiviert ist, werden Abfragen bei jeder Mausbewegung durchgeführt, auch wenn keine Taste gedrückt ist.

Für verallgemeinerte Ray-Casting-Abfragen, siehe Qt3DRender::QRayCaster und Qt3DRender::QScreenRayCaster.

Hinweis: Instanzen dieser Komponente sollten nicht gemeinsam genutzt werden, da die Nichtbeachtung dieser Bedingung höchstwahrscheinlich zu undefiniertem Verhalten führt.

Hinweis: Der Wert der Kamera-Fernebene beeinflusst das Picking und führt aufgrund der Fließkomma-Präzision zu falschen Ergebnissen, wenn er größer als ~100 000 ist.

Siehe auch Qt3DRender::QPickingSettings, Qt3DCore::QGeometry, Qt3DCore::QAttribute, Qt3DRender::QPickEvent, Qt3DRender::QPickTriangleEvent, und Qt3DRender::QNoPicking.

Dokumentation der Eigenschaften

[read-only] containsMouse : const bool

Gibt an, ob der Objektpicker aktuell die Maus enthält

Zugriffsfunktionen:

bool containsMouse() const

Benachrichtigungssignal:

void containsMouseChanged(bool containsMouse)

dragEnabled : bool

Gibt an, ob das Ziehen aktiviert ist

Zugriffsfunktionen:

bool isDragEnabled() const
void setDragEnabled(bool dragEnabled)

Benachrichtigungssignal:

void dragEnabledChanged(bool dragEnabled)

hoverEnabled : bool

Gibt an, ob Hover aktiviert ist

Zugriffsfunktionen:

bool isHoverEnabled() const
void setHoverEnabled(bool hoverEnabled)

Benachrichtigungssignal:

void hoverEnabledChanged(bool hoverEnabled)

[read-only] pressed : const bool

Gibt an, ob der Objektpicker gerade gedrückt ist

Zugriffsfunktionen:

bool isPressed() const

Benachrichtigungssignal:

void pressedChanged(bool pressed)

priority : int

Die Priorität, die beim Filtern von Kommissionierergebnissen nach Priorität verwendet werden soll, wenn QPickingSettings::pickResultMode auf QPickingSettings::NearestPriorityPick eingestellt ist.

Zugriffsfunktionen:

int priority() const
void setPriority(int priority)

Melder-Signal:

void priorityChanged(int priority)

Dokumentation der Mitgliedsfunktionen

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

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Begrenzungsvolumen bei einem Mausklick einen Strahl schneidet. QPickEvent pick enthält Details zu diesem Ereignis.

bool QObjectPicker::containsMouse() const

Gibt true zurück, wenn die Objektauswahl aktuell die Maus enthält.

Hinweis: Getter-Funktion für die Eigenschaft containsMouse.

[signal] void QObjectPicker::entered()

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Begrenzungsvolumen mit einem Strahl der Maus, der in das Volumen eintritt, geschnitten wird.

[signal] void QObjectPicker::exited()

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Begrenzungsvolumen einen Strahl auf dem aus dem Volumen austretenden Strahl kreuzt.

bool QObjectPicker::isDragEnabled() const

Gibt true zurück, wenn das Ziehen aktiviert ist

Hinweis: Getter-Funktion für die Eigenschaft dragEnabled.

bool QObjectPicker::isHoverEnabled() const

Gibt true zurück, wenn Hover aktiviert ist

Hinweis: Getter-Funktion für die Eigenschaft hoverEnabled.

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

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Begrenzungsvolumen bei einer Mausbewegung mit gedrückter Taste einen Strahl schneidet. QPickEvent pick enthält Details zu diesem Ereignis.

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

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Bounding-Volumen bei einem Mausklick einen Strahl schneidet. QPickEvent pick enthält Details zu diesem Ereignis.

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

Dieses Signal wird ausgegeben, wenn das durch die pickAttribute-Eigenschaft definierte Begrenzungsvolumen einen Strahl auf einer Mausfreigabe schneidet. QPickEvent pick enthält Details zu diesem Ereignis.

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

Setzt die Eigenschaft dragEnabled auf dragEnabled

Hinweis: Setter-Funktion für die Eigenschaft dragEnabled.

Siehe auch isDragEnabled().

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

Setzt die Eigenschaft hoverEnabled auf hoverEnabled

Hinweis: Setter-Funktion für die Eigenschaft hoverEnabled.

Siehe auch isHoverEnabled().

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

Setzt die Priorität des Kommissionierers auf priority. Dies wird verwendet, wenn der Kommissionierergebnismodus auf QPickingSettings auf QPickingSettings::NearestPriorityPick eingestellt ist. Die Kommissionierergebnisse werden nach der höchsten Priorität und dem kürzesten Kommissionierweg sortiert.

Hinweis: Setter-Funktion für die Eigenschaft priority.

Siehe auch priority().

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