QPointingDevice Class

Die Klasse QPointingDevice beschreibt ein Gerät, von dem Maus-, Touch- oder Tablet-Ereignisse ausgehen. Mehr...

Kopfzeile: #include <QPointingDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Seit: Qt 6.0
Vererbt: QInputDevice

Öffentliche Typen

enum GrabTransition { GrabExclusive, UngrabExclusive, CancelGrabExclusive, GrabPassive, UngrabPassive, …, OverrideGrabPassive }
enum class PointerType { Unknown, Generic, Finger, Pen, Eraser, …, AllPointerTypes }
flags PointerTypes

Öffentliche Funktionen

QPointingDevice(QObject *parent = nullptr)
QPointingDevice(const QString &name, qint64 id, QInputDevice::DeviceType deviceType, QPointingDevice::PointerType pointerType, QInputDevice::Capabilities capabilities, int maxPoints, int buttonCount, const QString &seatName = QString(), QPointingDeviceUniqueId uniqueId = QPointingDeviceUniqueId(), QObject *parent = nullptr)
int buttonCount() const
int maximumPoints() const
QPointingDevice::PointerType pointerType() const
QPointingDeviceUniqueId uniqueId() const

Signale

void grabChanged(QObject *grabber, QPointingDevice::GrabTransition transition, const QPointerEvent *event, const QEventPoint &point) const

Statische öffentliche Mitglieder

const QPointingDevice *primaryPointingDevice(const QString &seatName = QString())

Detaillierte Beschreibung

Jedes QPointerEvent enthält einen QPointingDevice-Zeiger, um den Zugriff auf gerätespezifische Eigenschaften wie Typ und Fähigkeiten zu ermöglichen. Es liegt in der Verantwortung der Plattform oder generischer Plug-ins, die verfügbaren Zeigegeräte über QWindowSystemInterface zu registrieren, bevor Zeigerereignisse erzeugt werden. Anwendungen brauchen diese Klasse nicht zu instanziieren, sie sollten lediglich auf die globalen Instanzen zugreifen, auf die QPointerEvent::device() verweist.

Dokumentation der Mitgliedstypen

enum QPointingDevice::GrabTransition

Diese Aufzählung steht für einen Übergang des exklusiven oder passiven Zugriffs von einem Objekt (möglicherweise nullptr) zu einem anderen (möglicherweise nullptr). Es wird als Argument des Signals QPointingDevice::grabChanged() ausgegeben.

Gültige Werte sind:

KonstanteWertBeschreibung
QPointingDevice::GrabExclusive0x10Wird nach QPointerEvent::setExclusiveGrabber() ausgegeben.
QPointingDevice::UngrabExclusive0x20Wird nach QPointerEvent::setExclusiveGrabber() ausgegeben, wenn der Greifer auf nullptr gesetzt ist, um zu signalisieren, dass das Greifen normal beendet wurde.
QPointingDevice::CancelGrabExclusive0x30Wird nach QPointerEvent::setExclusiveGrabber() gesendet, wenn der Greifer auf ein anderes Objekt gesetzt wird, um zu melden, dass der Greifer des alten Greifers "gestohlen" wurde.
QPointingDevice::GrabPassive0x01Wird nach QPointerEvent::addPassiveGrabber() ausgegeben.
QPointingDevice::UngrabPassive0x02Wird ausgesendet, wenn ein passiver Greifer normal beendet wird, z. B. nach QPointerEvent::removePassiveGrabber().
QPointingDevice::CancelGrabPassive0x03Wird ausgesendet, wenn ein passiver Greifer abnormal beendet wird (eine Geste wird abgebrochen).
QPointingDevice::OverrideGrabPassive0x04Dieser Wert wird derzeit nicht verwendet.

enum class QPointingDevice::PointerType
flags QPointingDevice::PointerTypes

Diese Aufzählung stellt dar, was mit dem Zeigegerät interagiert.

Es gibt eine gewisse Redundanz zwischen dieser Eigenschaft und QInputDevice::DeviceType. Wenn zum Beispiel ein Touchscreen verwendet wird, ist DeviceType gleich TouchScreen und PointerType gleich Finger (immer). Bei einem Grafiktablett ist es jedoch oft möglich, dass beide Enden des Stifts verwendet werden, und die Programme müssen sie unterscheiden. Daher wird das Konzept so erweitert, dass jedes QPointerEvent einen PointerType hat, und es kann den Code für die Ereignisbehandlung vereinfachen, den DeviceType zu ignorieren und nur auf den PointerType zu reagieren.

Gültige Werte sind:

KonstanteWertBeschreibung
QPointingDevice::PointerType::Unknown0Der Zeigertyp ist unbekannt.
QPointingDevice::PointerType::Generic0x0001Eine Maus oder etwas, das sich wie eine Maus verhält (der Hauptzeiger bei X11).
QPointingDevice::PointerType::Finger0x0002Der Finger des Benutzers.
QPointingDevice::PointerType::Pen0x0004Das zeichnende Ende eines Stiftes.
QPointingDevice::PointerType::Eraser0x0008Das andere Ende des Stifts (wenn er einen virtuellen Radiergummi am anderen Ende hat).
QPointingDevice::PointerType::Cursor0x0010Ein transparenter Kreis mit Fadenkreuz, wie er auf einem Puck Gerät zu finden ist.
QPointingDevice::PointerType::AllPointerTypes0x7FFFJeder der oben genannten (als Standard-Filterwert verwendet).

Der Typ PointerTypes ist ein Typedef für QFlags<PointerType>. Er speichert eine ODER-Kombination von PointerType-Werten.

Dokumentation der Mitgliedsfunktionen

QPointingDevice::QPointingDevice(QObject *parent = nullptr)

Erzeugt eine neue ungültige Zeigegeräteinstanz als Kind von parent.

QPointingDevice::QPointingDevice(const QString &name, qint64 id, QInputDevice::DeviceType deviceType, QPointingDevice::PointerType pointerType, QInputDevice::Capabilities capabilities, int maxPoints, int buttonCount, const QString &seatName = QString(), QPointingDeviceUniqueId uniqueId = QPointingDeviceUniqueId(), QObject *parent = nullptr)

Erzeugt eine neue Zeigegeräteinstanz mit den angegebenen name, deviceType, pointerType, capabilities, maxPoints, buttonCount, seatName, uniqueId und parent.

int QPointingDevice::buttonCount() const

Gibt die maximale Anzahl von Gerätetasten zurück, die erkannt werden können.

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

[signal] void QPointingDevice::grabChanged(QObject *grabber, QPointingDevice::GrabTransition transition, const QPointerEvent *event, const QEventPoint &point) const

Dieses Signal wird ausgesendet, wenn das Objekt grabber einen exklusiven oder passiven Zugriff auf point während der Übergabe von event erhält oder verliert. transition teilt mit, was aus der Sicht des Objekts grabber geschehen ist.

Hinweis: Ein Grab-Übergang von einem Objekt zu einem anderen resultiert in zwei Signalen, um mitzuteilen, dass ein Objekt seinen Grab verloren hat, und um mitzuteilen, dass es einen anderen Grabber gibt. In anderen Fällen, wenn der Übergang zu oder von einem nicht-grabbenden Zustand erfolgt, wird nur ein Signal ausgegeben: das Argument grabber ist niemals nullptr.

Siehe auch QPointerEvent::setExclusiveGrabber(), QPointerEvent::addPassiveGrabber(), und QPointerEvent::removePassiveGrabber().

int QPointingDevice::maximumPoints() const

Gibt die maximale Anzahl gleichzeitiger Berührungspunkte (Finger) zurück, die erkannt werden können.

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

QPointingDevice::PointerType QPointingDevice::pointerType() const

Gibt den Zeigertyp zurück.

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

[static] const QPointingDevice *QPointingDevice::primaryPointingDevice(const QString &seatName = QString())

Gibt das primäre Zeigegerät (den Hauptzeiger, der traditionell als Maus angenommen wird) auf dem angegebenen Sitz seatName zurück.

Wenn mehrere Zeigegeräte registriert sind, bevorzugt diese Funktion eine Maus oder ein Touchpad, das mit dem angegebenen seatName übereinstimmt und kein anderes Gerät als übergeordnetes Gerät hat. Normalerweise hat nur ein Haupt- oder Kerngerät kein übergeordnetes Gerät. Wird jedoch ein solches Gerät nicht gefunden, erzeugt diese Funktion eine neue virtuelle "Core Pointer"-Maus. Auf diese Weise funktioniert Qt auch auf Plattformen, die noch keine Erkennung und Registrierung von Eingabegeräten vornehmen.

QPointingDeviceUniqueId QPointingDevice::uniqueId() const

Gibt eine eindeutige ID (von zweifelhaftem Nutzen) für das Gerät zurück.

Sie sollten sich wahrscheinlich eher mit QPointerEventPoint::uniqueId() beschäftigen.

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

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