Sur cette page

QTabletEvent Class

La classe QTabletEvent contient des paramètres qui décrivent un événement Tablet. Plus d'informations...

En-tête : #include <QTabletEvent>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : QSinglePointEvent

Fonctions publiques

QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)
qreal pressure() const
qreal rotation() const
qreal tangentialPressure() const
qreal xTilt() const
qreal yTilt() const
qreal z() const

Description détaillée

Lesévénements Tablet sont générés par des périphériques de tablettes tels que les tablettes Wacom et diverses autres marques, ainsi que par les stylos électromagnétiques fournis avec certains types d'ordinateurs tablettes. (Ce n'est pas la même chose que QTouchEvent, qu'un écran tactile génère, même lorsqu'un stylet passif est utilisé sur un écran tactile).

Les événements de la tablette sont similaires à ceux de la souris ; par exemple, les accesseurs x(), y(), pos(), globalX(), globalY() et globalPos() fournissent la position du curseur, et vous pouvez voir quels buttons() sont pressés (presser la pointe du stylet contre la surface de la tablette équivaut à un bouton gauche de la souris). Mais les événements de la tablette transmettent également des informations supplémentaires fournies par le pilote de la tablette ; Par exemple, vous pourriez vouloir effectuer un rendu sous-pixel avec des coordonnées à plus haute résolution (globalPosF()), ajuster la luminosité des couleurs en fonction de pressure() l'outil contre la surface de la tablette, utiliser différentes brosses en fonction du type d'outil en cours d'utilisation (deviceType()), moduler la forme du pinceau en fonction de l'inclinaison des axes X et Y de l'outil par rapport à la surface de la tablette (xTilt() et yTilt()), et utiliser une gomme virtuelle au lieu d'un pinceau si l'utilisateur passe à l'autre extrémité d'un stylet à double extrémité (pointerType()).

Chaque événement contient un drapeau d'acceptation qui indique si le récepteur veut l'événement. Vous devez appeler QTabletEvent::accept() si vous gérez l'événement de la tablette, sinon il sera envoyé au widget parent. Les événements TabletEnterProximity et TabletLeaveProximity font exception : ils sont uniquement envoyés à QApplication et ne vérifient pas s'ils sont acceptés ou non.

La fonction QWidget::setEnabled() peut être utilisée pour activer ou désactiver les événements liés à la souris, à la tablette et au clavier pour un widget.

Le gestionnaire d'événements QWidget::tabletEvent() reçoit les événements TabletPress, TabletRelease et TabletMove. Qt Widgets envoie d'abord un événement tablette, puis s'il n'est accepté par aucun widget, il envoie un événement souris. Cela permet aux utilisateurs d'applications qui ne sont pas conçues pour les tablettes d'utiliser une tablette comme une souris. Toutefois, les applications de dessin à haute résolution doivent gérer les événements de la tablette, car ils peuvent se produire à une fréquence plus élevée, ce qui est un avantage pour la fluidité et la précision du dessin. Si les événements de la tablette sont rejetés, les événements synthétiques de la souris peuvent être comprimés pour plus d'efficacité.

Notez que le fait d'appuyer sur le bouton du stylet alors que le stylet survole la tablette génère une pression sur le bouton sur certains types de tablettes, alors que sur d'autres types de tablettes, il est nécessaire d'appuyer le stylet sur la surface de la tablette afin d'enregistrer la pression simultanée sur le bouton du stylet.

Notes pour les utilisateurs de X11

Si la tablette est configurée dans xorg.conf pour utiliser le pilote Wacom, il y aura des "périphériques" XInput séparés pour le stylet, la gomme, et (optionnellement) le curseur et le pavé tactile. Qt les reconnaît par leur nom. Sinon, si la tablette est configurée pour utiliser le pilote evdev, il n'y aura qu'un seul périphérique et les applications risquent de ne pas pouvoir distinguer le stylet de la gomme.

Notes pour les utilisateurs de Windows

La prise en charge des tablettes nécessite actuellement l'installation du pilote Windows WACOM qui fournit la DLL wintab32.dll. Elle est contenue dans des paquets plus anciens, par exemple pentablet_5.3.5-3.exe.

Documentation des fonctions membres

QTabletEvent::QTabletEvent(QEvent::Type type, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos, qreal pressure, float xTilt, float yTilt, float tangentialPressure, qreal rotation, float z, Qt::KeyboardModifiers keyState, Qt::MouseButton button, Qt::MouseButtons buttons)

Construit un événement tablette à partir de l'adresse type.

Le paramètre pos indique où l'événement s'est produit dans le widget ; globalPos est la position correspondante en coordonnées absolues.

pressure donne la pression exercée sur le dispositif dev.

xTilt et yTilt indiquent le degré d'inclinaison de l'appareil par rapport aux axes x et y respectivement.

keyState spécifie les modificateurs de clavier à utiliser (par exemple, Ctrl).

Le paramètre z indique la coordonnée Z de l'appareil sur la tablette ; cette coordonnée est généralement donnée par la molette d'une souris 4D. Si l'appareil ne prend pas en charge l'axe Z (c'est-à-dire que QPointingDevice::capabilities() n'inclut pas ZPosition), passez 0 ici.

Le paramètre tangentialPressure donne la valeur de la pression tangentielle de la molette d'un aérographe. Si l'appareil ne prend pas en charge la pression tangentielle (par exemple, QPointingDevice::capabilities() n'inclut pas TangentialPressure), passez 0 ici.

rotation donne la rotation de l'appareil en degrés. Les souris 4D, le Wacom Art Pen et l'Apple Pencil prennent en charge la rotation. Si l'appareil ne prend pas en charge la rotation (c'est-à-dire que QPointingDevice::capabilities() n'inclut pas Rotation), passez 0 ici.

L'adresse button à l'origine de l'événement est indiquée sous la forme d'une valeur de l'énumération Qt::MouseButton. Si l'événement type n'est pas TabletPress ou TabletRelease, le bouton approprié pour cet événement est Qt::NoButton.

buttons est l'état de tous les boutons au moment de l'événement.

Voir également pos(), globalPos(), device(), pressure(), xTilt(), yTilt(), uniqueId(), rotation(), tangentialPressure() et z().

qreal QTabletEvent::pressure() const

Renvoie la pression de l'appareil. 0.0 indique que le stylet n'est pas sur la tablette, 1.0 indique la pression maximale du stylet.

Voir également tangentialPressure().

qreal QTabletEvent::rotation() const

Renvoie la rotation de l'outil actuel en degrés, où zéro signifie que la pointe du stylet pointe vers le haut de la tablette, une valeur positive signifie qu'il est tourné vers la droite, et une valeur négative signifie qu'il est tourné vers la gauche. Cela peut être donné par une souris 4D ou un stylet compatible avec la rotation (comme le Wacom Art Pen ou l'Apple Pencil). Si l'appareil ne prend pas en charge la rotation, cette valeur est toujours de 0,0.

qreal QTabletEvent::tangentialPressure() const

Renvoie la pression tangentielle de l'appareil. Cette pression est typiquement donnée par une molette sur un aérographe. La plage va de -1,0 à 1,0. 0,0 indique une position neutre. Les aérographes actuels ne peuvent se déplacer que dans le sens positif à partir de la position neutre. Si l'appareil ne prend pas en charge la pression tangentielle, cette valeur est toujours 0,0.

Remarque : la valeur est enregistrée sous la forme d'un nombre flottant à précision unique.

Voir également pressure().

qreal QTabletEvent::xTilt() const

Renvoie l'angle entre le dispositif (un stylo, par exemple) et la perpendiculaire dans la direction de l'axe des x. Les valeurs positives correspondent à la droite physique de la tablette. L'angle est compris entre -60 et +60 degrés.

Illustration d'un dispositif incliné dans un système de coordonnées tridimensionnelles

Remarque : la valeur est stockée sous la forme d'un nombre flottant à précision unique.

Voir également yTilt().

qreal QTabletEvent::yTilt() const

Renvoie l'angle entre le dispositif (un stylo, par exemple) et la perpendiculaire dans la direction de l'axe y. Les valeurs positives correspondent à la partie inférieure de la tablette. L'angle est compris entre -60 et +60 degrés.

Remarque : la valeur est stockée sous la forme d'un nombre flottant à précision unique.

Voir également xTilt().

qreal QTabletEvent::z() const

Renvoie la position z de l'appareil. Cette position est généralement représentée par la roue d'une souris 4D. Si l'appareil ne prend pas en charge l'axe Z, cette valeur est toujours nulle. Il ne s'agit pas de la même chose que la pression.

Remarque : la valeur est stockée sous la forme d'un nombre flottant à précision unique.

Voir également pressure().

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