Auf dieser Seite

Qt3DRender::QObjectPicker Class

class Qt3DRender::QObjectPicker

Die Klasse `QObjectPicker` instanziiert eine Komponente, mit der über einen als „Picking“ bezeichneten Vorgang mit einer `QEntity` interagiert werden kann. Mehr...

Header: #include <qobjectpicker.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: ObjectPicker
Erbt von: Qt3DCore::QComponent
Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

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 aus Ansichtsfenster und Kamera wird beim Auswählen ein Strahl durch die Szene geworfen, um Objekte zu finden, deren Begrenzungsvolumen den Strahl schneidet. Das Begrenzungsvolumen wird anhand der Werte im Attributpuffer berechnet, der durch das Attribut „boundingVolumePositionAttribute“ der Geometrie festgelegt wird.

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

Die meisten Signale enthalten eine Instanz von ` QPickEvent `. Ist `QPickingSettings::pickMode()` auf ` QPickingSettings::TrianglePicking` gesetzt, ist der tatsächliche Typ des Auswahlparameters ` QPickTriangleEvent`.

Pick-Abfragen werden beim Drücken und Loslassen der Maustaste durchgeführt. Ist das Ziehen aktiviert, finden Abfragen zudem bei jeder Mausbewegung statt, solange eine Taste gedrückt ist. Ist das Hover-Verhalten aktiviert, finden Abfragen bei jeder Mausbewegung statt, auch wenn keine Taste gedrückt ist.

Informationen zu allgemeinen Ray-Casting-Abfragen finden Sie unter Qt3DRender::QRayCaster und Qt3DRender::QScreenRayCaster.

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

Hinweis: Der Wert der hinteren Ebene der Kamera beeinflusst die Auswahl und führt aufgrund der Gleitkommagenauigkeit 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 zu Eigenschaften

[read-only] containsMouse : bool

Gibt an, ob der Objekt-Picker derzeit 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 die Hover-Funktion aktiviert ist

Zugriffsfunktionen:

bool isHoverEnabled() const
void setHoverEnabled(bool hoverEnabled)

Benachrichtigungssignal:

void hoverEnabledChanged(bool hoverEnabled)

[read-only] pressed : bool

Gibt an, ob die Objekt-Auswahltaste derzeit gedrückt ist

Zugriffsfunktionen:

bool isPressed() const

Benachrichtigungssignal:

void pressedChanged(bool pressed)

priority : int

Die Priorität, die beim Filtern der Kommissionierergebnisse nach Priorität verwendet werden soll, wenn „ QPickingSettings::pickResultMode “ auf „ QPickingSettings::NearestPriorityPick “ gesetzt ist.

Zugriffsfunktionen:

int priority() const
void setPriority(int priority)

Benachrichtigungssignal:

void priorityChanged(int priority)

Dokumentation der Mitgliedsfunktionen

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

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

bool QObjectPicker::containsMouse() const

Gibt „true“ zurück, wenn der Objekt-Picker derzeit die Maus enthält

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

[signal] void QObjectPicker::entered()

Dieses Signal wird ausgelöst, wenn das durch die Eigenschaft „pickAttribute“ definierte Begrenzungsvolumen einen Strahl der Maus schneidet, der in das Volumen eintritt.

[signal] void QObjectPicker::exited()

Dieses Signal wird ausgelöst, wenn das durch die Eigenschaft „pickAttribute“ definierte Begrenzungsvolumen einen Strahl schneidet, der aus dem Volumen austritt.

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 die Hover-Funktion aktiviert ist

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

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

Dieses Signal wird ausgelöst, wenn sich das durch die Eigenschaft „pickAttribute“ definierte Begrenzungsvolumen bei einer Mausbewegung mit gedrückter Taste mit einem Strahl schneidet. Das QPickEvent- pick enthält Details zu dem Ereignis.

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

Dieses Signal wird ausgelöst, wenn das durch die Eigenschaft „pickAttribute“ definierte Begrenzungsvolumen einen Strahl schneidet. Bei einem Mausklick enthält das QPickEvent- pick, das bei diesem Ereignis ausgelöst wird, Details zum Ereignis.

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

Dieses Signal wird ausgelöst, wenn das durch die Eigenschaft „pickAttribute“ definierte Begrenzungsvolumen beim Loslassen der Maustaste einen Strahl schneidet. Das 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)

Legt die Priorität des Kommissionierers auf „ priority “ fest. Dies wird verwendet, wenn der Modus für die Kommissionierergebnisse in den QPickingSettings auf „ QPickingSettings::NearestPriorityPick “ eingestellt ist. Die Kommissionierergebnisse werden nach der höchsten Priorität und der kürzesten Kommissionierstrecke sortiert.

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

Siehe auch „ 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.