QInputDevice Class
La classe QInputDevice décrit un périphérique à l'origine d'une entrée « QInputEvent ». En savoir plus...
| 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 de : | 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() |
Fonctions protégées
| QInputDevice(const QInputDevice &) | |
| QInputDevice(QInputDevice &&) | |
| QInputDevice & | operator=(QInputDevice &&) |
| QInputDevice & | operator=(const QInputDevice &) |
Description détaillée
Chaque classe ` QInputEvent ` contient un pointeur `QInputDevice` permettant d’accéder aux propriétés spécifiques au périphérique, telles que le type, les capacités et le siège. Il incombe à la plate-forme ou aux plug-ins génériques de détecter, créer et enregistrer une instance de cette classe correspondant à chaque périphérique d’entrée disponible, via `QWindowSystemInterface::registerInputDevice()`, avant de générer tout événement d’entrée se rapportant à ce périphérique.
Les applications n’ont pas besoin d’instancier cette classe, mais peuvent lire les instances pointées par les fonctions ` QInputEvent::device()` et ` QInputDevice::devices()`.
Documentation sur les types 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 disponible sur les capacités du périphérique d'entrée. |
QInputDevice::Capability::Position | 0x0001 | Indique que des informations de 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 les informations relatives à la surface tactile sont disponibles, ce qui signifie que la fonction ` QEventPoint::ellipseDiameters()` renvoie des valeurs valides concernant les points de contact. |
QInputDevice::Capability::Pressure | 0x0004 | Indique que les informations de pression sont disponibles, ce qui signifie que la fonction ` QEventPoint::pressure()` renvoie une valeur valide. |
QInputDevice::Capability::Velocity | 0x0008 | Indique que les informations de vitesse sont disponibles, ce qui signifie que la fonction ` QEventPoint::velocity()` renvoie un vecteur valide. |
QInputDevice::Capability::NormalizedPosition | 0x0020 | Indique que la position normalisée est disponible, ce qui signifie que la fonction QEventPoint::normalizedPosition() renvoie une valeur valide. |
QInputDevice::Capability::MouseEmulation | 0x0040 | Indique que le périphérique synthétise des événements de souris. |
QInputDevice::Capability::Scroll | 0x0100 | Indique que le périphérique dispose d’une fonctionnalité de défilement. |
QInputDevice::Capability::PixelScroll (since Qt 6.2) | 0x0080 | Indique que le périphérique (généralement un « touchpad ») défile à l'aide de « pixel precision ». |
QInputDevice::Capability::Hover | 0x0200 | Indique que le périphérique dispose d’une fonctionnalité de survol. |
QInputDevice::Capability::Rotation | 0x0400 | Indique que des informations de type « rotation » sont disponibles. |
QInputDevice::Capability::XTilt | 0x0800 | Indique que des informations d’ tilt sont disponibles pour l’axe X. |
QInputDevice::Capability::YTilt | 0x1000 | Indique que des informations de type « tilt » sont disponibles pour l’axe Y. |
QInputDevice::Capability::TangentialPressure | 0x2000 | Indique que des informations d'tangential pressure sont disponibles. |
QInputDevice::Capability::ZPosition | 0x4000 | Indique que des informations de position sont disponibles pour l’ Z-axis. |
QInputDevice::Capability::All | 0x7FFFFFFF |
Le type « Capabilities » est une définition de type (typedef) pour QFlags<Capability>. Il stocke une combinaison OR de valeurs Capability.
enum class QInputDevice::DeviceType
flags QInputDevice::DeviceTypes
Cette énumération représente le type de périphérique à l'origine d'une erreur de type « 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 périphérique, 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 renvoyées par la fonction ` QEventPoint`. Par conséquent, Qt permet à l’utilisateur d’interagir directement avec plusieurs `QWidgets`, `QGraphicsItems` ou éléments ` Qt Quick ` simultanément. |
QInputDevice::DeviceType::TouchPad | 0x0004 | Sur ce type d’appareil, la surface tactile est distincte de l’écran. Il n’existe 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 permet aux utilisateurs d’interagir avec un seul QWidget ou QGraphicsItem à la fois. |
QInputDevice::DeviceType::Stylus | 0x0010 | Dispositif de type stylet utilisé sur une tablette graphique, telle qu’une tablette Wacom, ou sur un écran tactile doté d’une fonction de détection de stylet distincte. |
QInputDevice::DeviceType::Airbrush | 0x0020 | Un stylet muni d’une molette permettant de régler l’ tangentialPressure. |
QInputDevice::DeviceType::Puck | 0x0008 | Un périphérique similaire à une souris plate, doté d’un cercle transparent avec un réticule. |
QInputDevice::DeviceType::Keyboard | 0x1000 | Un clavier. |
QInputDevice::DeviceType::AllDevices | 0x7FFFFFFF | L’un des éléments ci-dessus (utilisé comme valeur de filtre par défaut). |
Le type DeviceTypes est une définition de type (typedef) pour QFlags<DeviceType>. Il stocke une combinaison OR de valeurs DeviceType.
Documentation de la propriété
[read-only] availableVirtualGeometry : QRect
Cette propriété définit la zone du bureau virtuel à laquelle cet appareil peut accéder.
Par exemple, un périphérique d’entrée de type « TouchScreen » est fixé sur un seul écran physique et généralement calibré de manière à ce que cette zone corresponde à QScreen::geometry(), tandis qu’un périphérique de type « Mouse » est généralement capable d’accéder à tous les écrans du bureau virtuel.
Par ailleurs, une tablette graphique Wacom peut être configurée de manière à être mappée sur tous les écrans, ou uniquement sur l’écran sur lequel l’utilisateur préfère créer ses dessins, ou encore uniquement sur la fenêtre dans laquelle le dessin est réalisé.
Un périphérique Stylus intégré à un écran tactile peut être physiquement limité à cet écran.
Si le rectangle renvoyé est de type « 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 système propre à la plateforme.
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 |
Documentation sur les fonctions membres
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’ name fournie correspond généralement au nom de modèle attribué par le fabricant, s’il est disponible, ou à tout autre identifiant ; id est un numéro spécifique à la plate-forme qui sera unique pour chaque périphérique (par exemple, l’ID xinput sous X11) ; type identifie le type de périphérique. Sur les systèmes de fenêtrage capables de gérer simultanément les entrées provenant de plusieurs utilisateurs ou de plusieurs ensembles de périphériques d’entrée (tels que Wayland ou X11), seatName identifie le nom de l’ensemble de périphériques qui seront utilisés conjointement. Si le périphérique est un périphérique enfant ou esclave (par exemple, l’une des nombreuses souris pouvant déplacer à tour de rôle le « pointeur principal »), le périphérique maître doit être spécifié comme « parent ».
Le plugin de plateforme crée, enregistre et conserve la propriété de chaque instance de périphérique ; en règle générale, il convient de spécifier parent à des fins de gestion de la mémoire, même s’il n’y a pas de périphérique maître pour un périphérique donné.
Par défaut, les fonctions ` capabilities()` sont définies comme suit : ` None`.
[protected delete] QInputDevice::QInputDevice(const QInputDevice &)
Copie et construit une instance de ` QInputDevice`. Cette fonction est supprimée.
[protected delete] QInputDevice::QInputDevice(QInputDevice &&)
Crée par « move » une instance de ` QInputDevice`. Cette fonction est supprimée.
QInputDevice::Capabilities QInputDevice::capabilities() const
Renvoie les capacités de l'appareil.
Remarque : fonctiongetter pour la propriété capabilities.
[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 exhaustive sur toutes les plateformes. À ce jour, c’est sur la plateforme Linux que les informations sont les plus complètes, tant au démarrage qu’en réponse à un branchement à chaud. La plupart des autres plateformes ne sont capables de fournir que des périphériques génériques de différents types, et ce uniquement après avoir reçu des événements de leur part ; de plus, la plupart des plateformes n’informent pas Qt lorsqu’un périphérique est branché ou débranché en cours d’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é en vue d’un autotest, on peut utiliser la fonction ` QTest::createTouchDevice()`. Les plugins de plate-forme doivent appeler `QWindowSystemInterface::registerInputDevice()` pour ajouter les périphériques au fur et à mesure qu’ils sont détectés.
bool QInputDevice::hasCapability(QInputDevice::Capability capability) const
Indique si les capacités de l'appareil incluent l'capability.
QString QInputDevice::name() const
Renvoie le nom du périphérique.
Cette chaîne peut être vide. Elle est toutefois utile sur les systèmes disposant de plusieurs périphériques d'entrée : elle permet de déterminer de quel périphérique provient une « QPointerEvent ».
Remarque : fonctiongetter pour la propriété « name ».
[static] const QInputDevice *QInputDevice::primaryKeyboard(const QString &seatName = QString())
Renvoie le clavier principal ou maître associé au siège indiqué seatName.
QString QInputDevice::seatName() const
Renvoie le siège auquel le périphérique est associé, s'il est connu ; sinon, renvoie une chaîne vide.
Les périphériques destinés à être utilisés conjointement par un même utilisateur peuvent être configurés pour porter le même nom de siège. À ce jour, cela n’est possible que sur les plateformes Wayland et X11.
Remarque : fonctionde récupération pour la propriété seatName.
[static, since 6.3] QStringList QInputDevice::seatNames()
Renvoie une liste des noms de sièges pour tous les périphériques d'entrée enregistrés (claviers et périphériques de pointage).
Cette fonction a été introduite dans Qt 6.3.
qint64 QInputDevice::systemId() const
Renvoie l'identifiant système spécifique à la plateforme (par exemple, l'identifiant xinput sur la plateforme X11).
Toutes les plateformes sont censées fournir un identifiant système unique pour chaque périphérique.
Remarque : fonctionde lecture (getter ) pour la propriété systemId.
QInputDevice::DeviceType QInputDevice::type() const
Renvoie le type de périphérique.
Remarque : fonctiongetter pour la propriété « type ».
[protected delete] QInputDevice &QInputDevice::operator=(QInputDevice &&)
La commande « Move » affecte « other » à cette instance de « QInputDevice ». Cette fonction est supprimée.
[protected delete] QInputDevice &QInputDevice::operator=(const QInputDevice &)
Copie et attribue la classe « other » à cette instance « QInputDevice ». Cette fonction est supprimée.
© 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.