Auf dieser Seite

QInputDevice Class

Die Klasse „QInputDevice“ beschreibt ein Gerät, von dem ein „ QInputEvent “ stammt. Mehr...

Header: #include <QInputDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Seit: Qt 6.0
Erbt von: QObject
Vererbt an:

QPointingDevice

Öffentliche Typen

flags Capabilities
enum class Capability { None, Position, Area, Pressure, Velocity, …, All }
enum class DeviceType { Unknown, Mouse, TouchScreen, TouchPad, Stylus, …, AllDevices }
flags DeviceTypes

Eigenschaften

Öffentliche Funktionen

QInputDevice(QObject *parent = nullptr)
QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)
QRect availableVirtualGeometry() const
QInputDevice::Capabilities capabilities() const
bool hasCapability(QInputDevice::Capability capability) const
QString name() const
QString seatName() const
qint64 systemId() const
QInputDevice::DeviceType type() const

Signale

void availableVirtualGeometryChanged(QRect area)
void capabilitiesChanged(QInputDevice::Capabilities capabilities)

Statische öffentliche Mitglieder

QList<const QInputDevice *> devices()
const QInputDevice *primaryKeyboard(const QString &seatName = QString())
(since 6.3) QStringList seatNames()

Geschützte Funktionen

QInputDevice(const QInputDevice &)
QInputDevice(QInputDevice &&)
QInputDevice &operator=(QInputDevice &&)
QInputDevice &operator=(const QInputDevice &)

Detaillierte Beschreibung

Jedes ` QInputEvent ` enthält einen `QInputDevice`-Zeiger, um den Zugriff auf gerätespezifische Eigenschaften wie Typ, Fähigkeiten und Sitzplatz zu ermöglichen. Es liegt in der Verantwortung der Plattform oder generischer Plug-ins, für jedes verfügbare Eingabegerät eine Instanz dieser Klasse zu ermitteln, zu erstellen und über `QWindowSystemInterface::registerInputDevice()` zu registrieren, bevor Eingabeberegnisse generiert werden, die sich auf dieses Gerät beziehen.

Anwendungen müssen diese Klasse nicht instanziieren, können jedoch die Instanzen auslesen, auf die QInputEvent::device() und QInputDevice::devices() verweisen.

Dokumentation zu den Mitgliedstypen

enum class QInputDevice::Capability
flags QInputDevice::Capabilities

Gibt an, welche Art von Informationen das Eingabegerät oder dessen Treiber bereitstellen kann.

KonstanteWertBeschreibung
QInputDevice::Capability::None0Es liegen keine Informationen über die Funktionen des Eingabegeräts vor.
QInputDevice::Capability::Position0x0001Gibt an, dass Positionsinformationen verfügbar sind, d. h., dass die Funktionen der „position()“-Familie in den Berührungspunkten gültige Punkte zurückgeben.
QInputDevice::Capability::Area0x0002Gibt an, dass Informationen zum Berührungsbereich verfügbar sind, d. h., dass die Funktion „ QEventPoint::ellipseDiameters()“ in den Berührungspunkten gültige Werte zurückgibt.
QInputDevice::Capability::Pressure0x0004Gibt an, dass Druckinformationen verfügbar sind, d. h., dass „ QEventPoint::pressure()“ einen gültigen Wert zurückgibt.
QInputDevice::Capability::Velocity0x0008Zeigt an, dass Geschwindigkeitsinformationen verfügbar sind, was bedeutet, dass „ QEventPoint::velocity()“ einen gültigen Vektor zurückgibt.
QInputDevice::Capability::NormalizedPosition0x0020Zeigt an, dass die normierte Position verfügbar ist, d. h., dass „ QEventPoint::normalizedPosition()“ einen gültigen Wert zurückgibt.
QInputDevice::Capability::MouseEmulation0x0040Zeigt an, dass das Gerät Mausereignisse synthetisiert.
QInputDevice::Capability::Scroll0x0100Zeigt an, dass das Gerät über eine Scrollfunktion verfügt.
QInputDevice::Capability::PixelScroll (since Qt 6.2)0x0080Gibt an, dass das Gerät (in der Regel ein „ touchpad “) mit „ pixel precision “ scrollt.
QInputDevice::Capability::Hover0x0200Gibt an, dass das Gerät über eine Hover-Funktion verfügt.
QInputDevice::Capability::Rotation0x0400Gibt an, dass Informationen zu „ rotation “ verfügbar sind.
QInputDevice::Capability::XTilt0x0800Gibt an, dass Informationen zur „ tilt “ für die X-Achse verfügbar sind.
QInputDevice::Capability::YTilt0x1000Zeigt an, dass Informationen zu „ tilt “ für die Y-Achse verfügbar sind.
QInputDevice::Capability::TangentialPressure0x2000Zeigt an, dass Informationen zur „ tangential pressure “ verfügbar sind.
QInputDevice::Capability::ZPosition0x4000Zeigt an, dass Positionsinformationen für den „ Z-axis “ verfügbar sind.
QInputDevice::Capability::All0x7FFFFFFF 

Der Typ „Capabilities“ ist ein typedef für QFlags<Capability>. Er speichert eine ODER-Kombination von Capability-Werten.

enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes

Diese Enumeration gibt den Gerätetyp an, der einen „ QPointerEvent “ generiert hat.

KonstanteWertBeschreibung
QInputDevice::DeviceType::Unknown0x0000Das Gerät kann nicht identifiziert werden.
QInputDevice::DeviceType::Mouse0x0001Eine Maus.
QInputDevice::DeviceType::TouchScreen0x0002Bei diesem Gerätetyp sind Berührungsfläche und Display integriert. Das bedeutet, dass die Oberfläche und das Display in der Regel dieselbe Größe haben, sodass ein direkter Zusammenhang zwischen den physischen Positionen der Berührungspunkte und den von ` QEventPoint` gemeldeten Koordinaten besteht. Daher ermöglicht Qt dem Benutzer die direkte Interaktion mit mehreren `QWidgets`, `QGraphicsItems` oder ` Qt Quick -Elementen` gleichzeitig.
QInputDevice::DeviceType::TouchPad0x0004Bei dieser Art von Gerät ist die Berührungsfläche vom Display getrennt. Es besteht kein direkter Zusammenhang zwischen der physischen Berührungsstelle und den Bildschirmkoordinaten. Stattdessen werden diese relativ zur aktuellen Mausposition berechnet, und der Benutzer muss das Touchpad verwenden, um diesen Bezugspunkt zu verschieben. Im Gegensatz zu Touchscreens ermöglicht Qt den Benutzern, jeweils nur mit einem einzigen „ QWidget “ oder „ QGraphicsItem “ zu interagieren.
QInputDevice::DeviceType::Stylus0x0010Ein stiftähnliches Gerät, das auf einem Grafiktablett wie beispielsweise einem Wacom-Tablett oder auf einem Touchscreen verwendet wird, der über eine separate Stift-Erkennungsfunktion verfügt.
QInputDevice::DeviceType::Airbrush0x0020Ein Stylus mit einem Daumenrad zur Einstellung des „ tangentialPressure “.
QInputDevice::DeviceType::Puck0x0008Ein Gerät, das einer flachen Maus ähnelt und über einen transparenten Kreis mit Fadenkreuz verfügt.
QInputDevice::DeviceType::Keyboard0x1000Eine Tastatur.
QInputDevice::DeviceType::AllDevices0x7FFFFFFFEines der oben genannten Geräte (wird als Standardfilterwert verwendet).

Der Typ „DeviceTypes“ ist ein typedef für QFlags<DeviceType>. Er speichert eine ODER-Kombination von DeviceType-Werten.

Dokumentation der Eigenschaft

[read-only] availableVirtualGeometry : QRect

Diese Eigenschaft legt den Bereich innerhalb des virtuellen Desktops fest, auf den dieses Gerät zugreifen kann.

Beispielsweise ist ein Eingabegerät vom Typ „ TouchScreen “ fest auf einen einzelnen physischen Bildschirm gebunden und in der Regel so kalibriert, dass dieser Bereich mit „ QScreen::geometry()“ übereinstimmt, während ein Gerät vom Typ „ Mouse “ in der Regel auf alle Bildschirme des virtuellen Desktops zugreifen kann.

Alternativ kann ein Wacom-Grafiktablett so konfiguriert werden, dass es auf alle Bildschirme abgebildet wird, oder nur auf den Bildschirm, auf dem der Benutzer am liebsten zeichnet, oder nur auf das Fenster, in dem gezeichnet wird.

Ein „ Stylus “-Gerät, das in einen Touchscreen integriert ist, kann physisch auf diesen Bildschirm beschränkt sein.

Wenn das zurückgegebene Rechteck „ null “ ist, bedeutet dies, dass dieses Gerät auf den gesamten virtuellen Desktop zugreifen kann.

Zugriffsfunktionen:

QRect availableVirtualGeometry() const

Benachrichtigungssignal:

void availableVirtualGeometryChanged(QRect area)

[read-only] capabilities : Capabilities

Diese Eigenschaft enthält die Gerätefunktionen.

Zugriffsfunktionen:

QInputDevice::Capabilities capabilities() const

Benachrichtigungssignal:

void capabilitiesChanged(QInputDevice::Capabilities capabilities)

[read-only] name : const QString

Diese Eigenschaft enthält den Gerätenamen.

Zugriffsfunktionen:

QString name() const

[read-only] seatName : const QString

Diese Eigenschaft enthält den mit dem Gerät verknüpften Sitz.

Zugriffsfunktionen:

QString seatName() const

[read-only] systemId : const qint64

Diese Eigenschaft enthält die plattformspezifische System-ID.

Zugriffsfunktionen:

qint64 systemId() const

[read-only] type : const DeviceType

Diese Eigenschaft enthält den Gerätetyp

Zugriffsfunktionen:

QInputDevice::DeviceType type() const

Dokumentation der Mitgliedsfunktionen

QInputDevice::QInputDevice(QObject *parent = nullptr)

Erstellt eine neue Instanz eines ungültigen Eingabegeräts als untergeordnetes Element von „ parent “.

QInputDevice::QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)

Erstellt eine neue Instanz eines Eingabegeräts. Die angegebene „ name “ ist in der Regel ein vom Hersteller zugewiesener Modellname, sofern verfügbar, oder eine andere identifizierbare Bezeichnung; „ id “ ist eine plattformspezifische Nummer, die für jedes Gerät eindeutig ist (beispielsweise die XInput-ID unter X11); „ type “ gibt an, um welche Art von Gerät es sich handelt. In Fenstersystemen, die Eingaben von mehreren Benutzern oder Gruppen von Eingabegeräten gleichzeitig verarbeiten können (wie Wayland oder X11), gibt „ seatName “ den Namen der Gruppe von Geräten an, die gemeinsam verwendet werden. Handelt es sich bei dem Gerät um ein untergeordnetes oder Slave-Gerät (z. B. eine von mehreren Mäusen, die abwechselnd den „Core-Zeiger“ bewegen können), sollte das Master-Gerät als „ parent “ angegeben werden.

Das Plattform-Plugin erstellt, registriert und verwaltet jede Geräteinstanz; in der Regel sollte aus Gründen der Speicherverwaltung „ parent “ angegeben werden, auch wenn für ein bestimmtes Gerät kein Master vorhanden ist.

Standardmäßig lauten „ capabilities()“ „ None “.

[protected delete] QInputDevice::QInputDevice(const QInputDevice &)

Erstellt eine Instanz von „ QInputDevice “ durch Kopieren. Diese Funktion wurde gelöscht.

[protected delete] QInputDevice::QInputDevice(QInputDevice &&)

Erstellt eine Instanz von ` QInputDevice`. Diese Funktion ist gelöscht.

QInputDevice::Capabilities QInputDevice::capabilities() const

Gibt die Gerätefunktionen zurück.

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

[static] QList<const QInputDevice *> QInputDevice::devices()

Gibt eine Liste aller registrierten Eingabegeräte (Tastaturen und Zeigegeräte) zurück.

Hinweis: Die Liste der Geräte ist nicht auf allen Plattformen immer vollständig. Bislang sind die umfassendsten Informationen auf der Linux-Plattform verfügbar, und zwar beim Systemstart und als Reaktion auf Hot-Plugging. Die meisten anderen Plattformen können erst nach dem Empfang von Ereignissen von den Geräten generische Geräte verschiedener Typen bereitstellen; außerdem teilen die meisten Plattformen Qt nicht mit, wenn ein Gerät während der Laufzeit angeschlossen oder getrennt wird.

Hinweis: Die zurückgegebene Liste kann nicht zum Hinzufügen neuer Geräte verwendet werden. Um einen simulierten Touchscreen für einen Autotest hinzuzufügen, kann ` QTest::createTouchDevice()` verwendet werden. Plattform-Plugins sollten `QWindowSystemInterface::registerInputDevice()` aufrufen, um Geräte hinzuzufügen, sobald sie erkannt werden.

bool QInputDevice::hasCapability(QInputDevice::Capability capability) const

Gibt zurück, ob die Gerätefunktionen die angegebene Funktion „ capability “ umfassen.

QString QInputDevice::name() const

Gibt den Gerätenamen zurück.

Diese Zeichenkette kann leer sein. Sie ist jedoch auf Systemen mit mehreren Eingabegeräten nützlich: Anhand dieser Zeichenkette lässt sich unterscheiden, von welchem Gerät ein „ QPointerEvent “ stammt.

Hinweis: Getter -Funktion für den Eigenschaftsnamen.

[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())

Gibt das Haupt- oder Master-Keyboard auf dem angegebenen Sitz zurück seatName.

QString QInputDevice::seatName() const

Gibt den Sitz zurück, dem das Gerät zugeordnet ist, sofern bekannt; andernfalls leer.

Geräte, die für die gemeinsame Nutzung durch einen Benutzer vorgesehen sind, können so konfiguriert werden, dass sie denselben Sitznamen haben. Dies ist bislang nur auf Wayland- und X11-Plattformen möglich.

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

[static, since 6.3] QStringList QInputDevice::seatNames()

Gibt eine Liste der Sitznamen für alle registrierten Eingabegeräte (Tastaturen und Zeigegeräte) zurück.

Diese Funktion wurde in Qt 6.3 eingeführt.

qint64 QInputDevice::systemId() const

Gibt die plattformspezifische System-ID zurück (beispielsweise die xinput-ID auf der X11-Plattform).

Es wird erwartet, dass alle Plattformen für jedes Gerät eine eindeutige System-ID bereitstellen.

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

QInputDevice::DeviceType QInputDevice::type() const

Gibt den Gerätetyp zurück.

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

[protected delete] QInputDevice &QInputDevice::operator=(QInputDevice &&)

other Weist der Instanz „ QInputDevice “ die Instanz „ “ zu. Diese Funktion wird gelöscht.

[protected delete] QInputDevice &QInputDevice::operator=(const QInputDevice &)

other Weist dieser Instanz von „ QInputDevice “ den Wert „ “ zu. Diese Funktion wird gelöscht.

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