QInputDevice Class
La classe QInputDevice décrit un dispositif d'où provient une adresse QInputEvent. Plus d'informations...
| En-tête : | #include <QInputDevice> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Depuis : | Qt 6.0 |
| Hérite : | QObject |
| Hérité par : |
Types publics
| flags | Capabilities |
| enum class | Capability { None, Position, Area, Pressure, Velocity, …, All } |
| enum class | DeviceType { Unknown, Mouse, TouchScreen, TouchPad, Stylus, …, AllDevices } |
| flags | DeviceTypes |
Propriétés
|
Fonctions publiques
| 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 |
Signaux
| void | availableVirtualGeometryChanged(QRect area) |
| void | capabilitiesChanged(QInputDevice::Capabilities capabilities) |
Membres publics statiques
| QList<const QInputDevice *> | devices() |
| const QInputDevice * | primaryKeyboard(const QString &seatName = QString()) |
(since 6.3) QStringList | seatNames() |
Description détaillée
Chaque site QInputEvent contient un pointeur QInputDevice permettant d'accéder aux propriétés spécifiques du périphérique, telles que le type, les capacités et le siège. Il incombe à la plate-forme ou aux modules génériques de découvrir, de créer et d'enregistrer une instance de cette classe correspondant à chaque périphérique d'entrée disponible, via QWindowSystemInterface::registerInputDevice(), avant de générer un événement d'entrée faisant référence à ce périphérique.
Les applications n'ont pas besoin d'instancier cette classe, mais peuvent lire les instances pointées par QInputEvent::device() et QInputDevice::devices().
Documentation sur les types de membres
enum class QInputDevice::Capability
flags QInputDevice::Capabilities
Indique le type d'informations que le périphérique d'entrée ou son pilote peut fournir.
| Constante | Valeur | Description |
|---|---|---|
QInputDevice::Capability::None | 0 | Aucune information sur les capacités du périphérique d'entrée n'est disponible. |
QInputDevice::Capability::Position | 0x0001 | Indique que des informations sur la position sont disponibles, ce qui signifie que la famille de fonctions position() dans les points de contact renvoie des points valides. |
QInputDevice::Capability::Area | 0x0002 | Indique que des informations sur la zone de contact sont disponibles, ce qui signifie que QEventPoint::ellipseDiameters() dans les points de contact renvoie des valeurs valides. |
QInputDevice::Capability::Pressure | 0x0004 | Indique que des informations sur la pression sont disponibles, ce qui signifie que QEventPoint::pressure() renvoie une valeur valide. |
QInputDevice::Capability::Velocity | 0x0008 | Indique que des informations sur la vitesse sont disponibles, ce qui signifie que QEventPoint::velocity() renvoie un vecteur valide. |
QInputDevice::Capability::NormalizedPosition | 0x0020 | Indique que la position normalisée est disponible, ce qui signifie que QEventPoint::globalPosition() renvoie une valeur valide. |
QInputDevice::Capability::MouseEmulation | 0x0040 | Indique que l'appareil synthétise les événements de la souris. |
QInputDevice::Capability::Scroll | 0x0100 | Indique que l'appareil dispose d'une capacité de défilement. |
QInputDevice::Capability::PixelScroll (since Qt 6.2) | 0x0080 | Indique que le périphérique (généralement un touchpad) défile avec pixel precision. |
QInputDevice::Capability::Hover | 0x0200 | Indique que l'appareil a une capacité de survol. |
QInputDevice::Capability::Rotation | 0x0400 | Indique que des informations sur rotation sont disponibles. |
QInputDevice::Capability::XTilt | 0x0800 | Indique que l'information tilt est disponible pour l'axe des X. |
QInputDevice::Capability::YTilt | 0x1000 | Indique que l'information tilt est disponible pour l'axe des Y. |
QInputDevice::Capability::TangentialPressure | 0x2000 | Indique que l'information tangential pressure est disponible. |
QInputDevice::Capability::ZPosition | 0x4000 | Indique que des informations sur la position de Z-axis sont disponibles. |
QInputDevice::Capability::All | 0x7FFFFFFF |
Le type Capacités est un typedef pour QFlags<Capacité>. Il stocke une combinaison OU de valeurs de capacité.
enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes
Cette énumération représente le type d'appareil qui a généré un message QPointerEvent.
| Constante | Valeur | Description |
|---|---|---|
QInputDevice::DeviceType::Unknown | 0x0000 | Le périphérique ne peut pas être identifié. |
QInputDevice::DeviceType::Mouse | 0x0001 | Une souris. |
QInputDevice::DeviceType::TouchScreen | 0x0002 | Dans ce type de dispositif, la surface tactile et l'écran sont intégrés. Cela signifie que la surface et l'écran ont généralement la même taille, de sorte qu'il existe une relation directe entre les positions physiques des points de contact et les coordonnées indiquées par QEventPoint. Par conséquent, Qt permet à l'utilisateur d'interagir directement avec plusieurs QWidgets, QGraphicsItems ou Qt Quick Items en même temps. |
QInputDevice::DeviceType::TouchPad | 0x0004 | Dans ce type d'appareil, la surface tactile est séparée de l'écran. Il n'y a pas de relation directe entre l'emplacement physique du toucher et les coordonnées à l'écran. Celles-ci sont calculées par rapport à la position actuelle de la souris et l'utilisateur doit utiliser le pavé tactile pour déplacer ce point de référence. Contrairement aux écrans tactiles, Qt XML ne permet aux utilisateurs d'interagir qu'avec un seul QWidget ou QGraphicsItem à la fois. |
QInputDevice::DeviceType::Stylus | 0x0010 | Un dispositif semblable à un stylet utilisé sur une tablette graphique telle qu'une tablette Wacom, ou sur un écran tactile qui fournit une capacité de détection de stylet séparée. |
QInputDevice::DeviceType::Airbrush | 0x0020 | Un stylet avec une molette pour ajuster tangentialPressure. |
QInputDevice::DeviceType::Puck | 0x0008 | Un dispositif similaire à une souris plate avec un cercle transparent doté d'un réticule. |
QInputDevice::DeviceType::Keyboard | 0x1000 | Un clavier. |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | N'importe lequel des éléments ci-dessus (utilisé comme valeur de filtre par défaut). |
Le type DeviceTypes est un typedef pour QFlags<DeviceType>. Il stocke une combinaison OR de valeurs DeviceType.
Documentation sur les propriétés
[read-only] availableVirtualGeometry : QRect
Cette propriété définit la région du bureau virtuel à laquelle ce périphérique peut accéder.
Par exemple, un périphérique d'entrée TouchScreen est fixé sur un seul écran physique et généralement calibré pour que cette zone soit la même que QScreen::geometry(), alors qu'un Mouse est généralement capable d'accéder à tous les écrans du bureau virtuel.
Une tablette graphique Wacom peut également être configurée de manière à être mappée sur tous les écrans, ou seulement sur l'écran sur lequel l'utilisateur préfère créer des dessins, ou seulement sur la fenêtre dans laquelle le dessin est effectué.
Un appareil Stylus intégré à un écran tactile peut être physiquement limité à cet écran.
Si le rectangle renvoyé est null, cela signifie que ce périphérique peut accéder à l'ensemble du bureau virtuel.
Fonctions d'accès :
| QRect | availableVirtualGeometry() const |
Signal de notification :
| void | availableVirtualGeometryChanged(QRect area) |
[read-only] capabilities : Capabilities
Cette propriété contient les capacités de l'appareil.
Fonctions d'accès :
| QInputDevice::Capabilities | capabilities() const |
Signal de notification :
| void | capabilitiesChanged(QInputDevice::Capabilities capabilities) |
[read-only] name : const QString
Cette propriété contient le nom de l'appareil.
Fonctions d'accès :
| QString | name() const |
[read-only] seatName : const QString
Cette propriété contient le siège associé à l'appareil.
Fonctions d'accès :
| QString | seatName() const |
[read-only] systemId : const qint64
Cette propriété contient l'identifiant du système spécifique à la plate-forme.
Fonctions d'accès :
| qint64 | systemId() const |
[read-only] type : const DeviceType
Cette propriété contient le type d'appareil
Fonctions d'accès :
| QInputDevice::DeviceType | type() const |
Membre Fonction Documentation
QInputDevice::QInputDevice(QObject *parent = nullptr)
Crée une nouvelle instance de périphérique d'entrée non valide en tant qu'enfant de parent.
QInputDevice::QInputDevice(const QString &name, qint64 id, QInputDevice::DeviceType type, const QString &seatName = QString(), QObject *parent = nullptr)
Crée une nouvelle instance de périphérique d'entrée. L'adresse name est normalement un nom de modèle attribué par le fabricant, s'il est disponible, ou quelque chose d'identifiable ; id est un numéro spécifique à la plate-forme qui sera unique par périphérique (par exemple l'ID xinput sur X11) ; type identifie le type de périphérique. Sur les systèmes de fenêtres capables de gérer les entrées de plusieurs utilisateurs ou ensembles de périphériques d'entrée en même temps (tels que Wayland ou X11), seatName identifie le nom de l'ensemble des périphériques qui seront utilisés ensemble. Si le périphérique est un périphérique enfant ou esclave (par exemple, une souris parmi d'autres qui peuvent déplacer à tour de rôle le "pointeur du noyau"), le périphérique maître doit être indiqué à l'adresse parent.
Le plugin de plateforme crée, enregistre et reste propriétaire de chaque instance de périphérique ; en général, parent doit être indiqué à des fins de gestion de la mémoire, même s'il n'y a pas de maître pour un périphérique particulier.
Par défaut, capabilities() est None.
QInputDevice::Capabilities QInputDevice::capabilities() const
Renvoie les capacités de l'appareil.
Remarque : fonction Getter pour les capacités des propriétés.
[static] QList<const QInputDevice *> QInputDevice::devices()
Renvoie une liste de tous les périphériques d'entrée enregistrés (claviers et dispositifs de pointage).
Remarque : la liste des périphériques n'est pas toujours complète sur toutes les plateformes. Jusqu'à présent, les informations les plus complètes sont disponibles sur la plate-forme Linux, au démarrage et en réponse au branchement à chaud. La plupart des autres plates-formes ne sont en mesure de fournir des périphériques génériques de différents types qu'après avoir reçu des événements de leur part ; et la plupart des plates-formes n'indiquent pas à Qt quand un périphérique est branché, ou quand il est débranché au moment de l'exécution.
Remarque : la liste renvoyée ne peut pas être utilisée pour ajouter de nouveaux périphériques. Pour ajouter un écran tactile simulé pour un autotest, QTest::createTouchDevice() peut être utilisé. Les plugins de plateforme doivent appeler QWindowSystemInterface::registerInputDevice() pour ajouter des périphériques au fur et à mesure qu'ils sont découverts.
bool QInputDevice::hasCapability(QInputDevice::Capability capability) const
Retourne si les capacités de l'appareil incluent l'adresse capability.
QString QInputDevice::name() const
Renvoie le nom de l'appareil.
Cette chaîne peut être vide. Elle est toutefois utile sur les systèmes disposant de plusieurs périphériques d'entrée : elle peut être utilisée pour différencier le périphérique à l'origine d'un message QPointerEvent.
Remarque : fonction Getter pour le nom de la propriété.
[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())
Renvoie le clavier central ou maître sur le siège donné seatName.
QString QInputDevice::seatName() const
Renvoie le siège auquel le dispositif est associé, s'il est connu, sinon il est vide.
Les périphériques destinés à être utilisés ensemble par un même utilisateur peuvent être configurés pour avoir le même nom de siège. Pour l'instant, cela n'est possible que sur les plateformes Wayland et X11.
Note : Fonction Getter pour la propriété seatName.
[static, since 6.3] QStringList QInputDevice::seatNames()
Renvoie une liste de noms de sièges pour tous les périphériques d'entrée enregistrés (claviers et dispositifs de pointage).
Cette fonction a été introduite dans Qt 6.3.
qint64 QInputDevice::systemId() const
Renvoie l'ID système spécifique à la plate-forme (par exemple l'ID xinput sur la plate-forme X11).
Toutes les plates-formes sont censées fournir un identifiant système unique pour chaque périphérique.
Remarque : fonction Getter pour la propriété systemId.
QInputDevice::DeviceType QInputDevice::type() const
Renvoie le type d'appareil.
Remarque : fonction Getter pour le type de propriété.
© 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.