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: |
Ö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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QInputDevice::Capability::None | 0 | Es liegen keine Informationen über die Funktionen des Eingabegeräts vor. |
QInputDevice::Capability::Position | 0x0001 | Gibt 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::Area | 0x0002 | Gibt 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::Pressure | 0x0004 | Gibt an, dass Druckinformationen verfügbar sind, d. h., dass „ QEventPoint::pressure()“ einen gültigen Wert zurückgibt. |
QInputDevice::Capability::Velocity | 0x0008 | Zeigt an, dass Geschwindigkeitsinformationen verfügbar sind, was bedeutet, dass „ QEventPoint::velocity()“ einen gültigen Vektor zurückgibt. |
QInputDevice::Capability::NormalizedPosition | 0x0020 | Zeigt an, dass die normierte Position verfügbar ist, d. h., dass „ QEventPoint::normalizedPosition()“ einen gültigen Wert zurückgibt. |
QInputDevice::Capability::MouseEmulation | 0x0040 | Zeigt an, dass das Gerät Mausereignisse synthetisiert. |
QInputDevice::Capability::Scroll | 0x0100 | Zeigt an, dass das Gerät über eine Scrollfunktion verfügt. |
QInputDevice::Capability::PixelScroll (since Qt 6.2) | 0x0080 | Gibt an, dass das Gerät (in der Regel ein „ touchpad “) mit „ pixel precision “ scrollt. |
QInputDevice::Capability::Hover | 0x0200 | Gibt an, dass das Gerät über eine Hover-Funktion verfügt. |
QInputDevice::Capability::Rotation | 0x0400 | Gibt an, dass Informationen zu „ rotation “ verfügbar sind. |
QInputDevice::Capability::XTilt | 0x0800 | Gibt an, dass Informationen zur „ tilt “ für die X-Achse verfügbar sind. |
QInputDevice::Capability::YTilt | 0x1000 | Zeigt an, dass Informationen zu „ tilt “ für die Y-Achse verfügbar sind. |
QInputDevice::Capability::TangentialPressure | 0x2000 | Zeigt an, dass Informationen zur „ tangential pressure “ verfügbar sind. |
QInputDevice::Capability::ZPosition | 0x4000 | Zeigt an, dass Positionsinformationen für den „ Z-axis “ verfügbar sind. |
QInputDevice::Capability::All | 0x7FFFFFFF |
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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QInputDevice::DeviceType::Unknown | 0x0000 | Das Gerät kann nicht identifiziert werden. |
QInputDevice::DeviceType::Mouse | 0x0001 | Eine Maus. |
QInputDevice::DeviceType::TouchScreen | 0x0002 | Bei 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::TouchPad | 0x0004 | Bei 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::Stylus | 0x0010 | Ein 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::Airbrush | 0x0020 | Ein Stylus mit einem Daumenrad zur Einstellung des „ tangentialPressure “. |
QInputDevice::DeviceType::Puck | 0x0008 | Ein Gerät, das einer flachen Maus ähnelt und über einen transparenten Kreis mit Fadenkreuz verfügt. |
QInputDevice::DeviceType::Keyboard | 0x1000 | Eine Tastatur. |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | Eines 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.