Sur cette page

QTabletEvent Class

La classe QTabletEvent contient des paramètres qui décrivent un événement Tablet. En savoir plus...

En-tête : #include <QTabletEvent>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : 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

Fonctions protégées

QTabletEvent(QTabletEvent &&)
QTabletEvent &operator=(QTabletEvent &&)
QTabletEvent &operator=(const QTabletEvent &other)

Description détaillée

Les événements de tablette sont générés par des périphériques tels que les tablettes Wacom et celles d’autres marques, ainsi que par les stylets électromagnétiques fournis avec certains types de tablettes. (Ils ne doivent pas être confondus avec les événements « QTouchEvent » générés par un écran tactile, même lorsqu’un stylet passif est utilisé sur celui-ci.)

Les événements de tablette sont similaires aux événements de souris ; par exemple, les accesseurs x(), y(), pos(), globalX(), globalY() et globalPos() fournissent la position du curseur, et vous pouvez voir quelles touches buttons() sont enfoncées (appuyer la pointe du stylet contre la surface de la tablette équivaut à un clic gauche de souris). Mais les événements de la tablette transmettent également des informations supplémentaires fournies par le pilote de la tablette ; par exemple, vous pouvez souhaiter effectuer un rendu sous-pixel avec des coordonnées à plus haute résolution (globalPosF()), ajuster la luminosité des couleurs en fonction de l’ pressure() de l’outil par rapport à la surface de la tablette, utiliser différents pinceaux selon le type d’outil utilisé (deviceType()), moduler la forme du pinceau d’une manière ou d’une autre en fonction de l’inclinaison de l’outil par rapport à la surface de la tablette sur les axes X et Y (xTilt() et yTilt()), et utiliser une gomme virtuelle à la place d’un pinceau si l’utilisateur passe à l’autre extrémité d’un stylet à double embout (pointerType()).

Chaque événement contient un indicateur d’acceptation qui précise si le récepteur souhaite recevoir l’événement. Vous devez appeler la fonction QTabletEvent::accept() si vous gérez l’événement de la tablette ; sinon, celui-ci sera transmis au widget parent. Les événements TabletEnterProximity et TabletLeaveProximity constituent une exception : ils sont uniquement envoyés à QApplication et ne vérifient pas s’ils sont acceptés ou non.

La fonction QWidget::setEnabled() permet d’activer ou de désactiver les événements de souris, de tablette et de clavier pour un widget.

Le gestionnaire d’événements ` QWidget::tabletEvent()` reçoit les événements `TabletPress`, `TabletRelease` et `TabletMove`. Qt envoie d’abord un événement de tablette, puis, s’il n’est accepté par aucun widget, il envoie un événement de souris. Cela permet aux utilisateurs d’applications non conçues pour les tablettes d’utiliser une tablette comme une souris. Cependant, les applications de dessin haute résolution devraient gérer les événements de tablette, car ceux-ci peuvent se produire à une fréquence plus élevée, ce qui est un avantage pour un dessin fluide et précis. Si les événements de tablette sont rejetés, les événements de souris synthétiques peuvent être compressés pour des raisons d’efficacité.

Notez que le fait d’appuyer sur le bouton du stylet alors que celui-ci survole la tablette génère une pression sur le bouton sur certains types de tablettes, tandis que sur d’autres, il sera nécessaire d’appuyer le stylet contre la surface de la tablette afin d’enregistrer la pression simultanée sur le bouton du stylet.

Remarques à l'attention des utilisateurs de X11

Si la tablette est configurée dans xorg.conf pour utiliser le pilote Wacom, il existera des « périphériques » XInput distincts pour le stylet, la gomme et (en option) le curseur et le pavé tactile. Qt les reconnaît par leurs noms. 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.

Remarques pour les utilisateurs de Windows

La prise en charge de la tablette nécessite actuellement l’installation du pilote Windows WACOM fournissant la DLL wintab32.dll. Celui-ci est inclus dans d’anciens paquets, par exemple pentablet_5.3.5-3.exe.

Documentation sur les 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)

Créer un événement « tablet » à partir de l'type fournie.

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

pressure dev indique la pression exercée sur l'appareil.

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

keyState précise quelles touches de modification du clavier sont enfoncées (par exemple, Ctrl).

Le paramètre z indique la coordonnée Z du périphérique sur la tablette ; celle-ci est généralement fournie par une molette sur une souris 4D. Si le périphérique 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 ` fournit la valeur de pression tangentielle de la molette d’un aérographe. Si le périphérique ne prend pas en charge la pression tangentielle (c’est-à-dire si QPointingDevice::capabilities() ne contient pas TangentialPressure), passez 0 ici.

rotation Renvoie la rotation du périphérique en degrés. Les souris 4D, le Wacom Art Pen et l’Apple Pencil prennent en charge la rotation. Si le périphérique ne prend pas en charge la rotation (c’est-à-dire que QPointingDevice::capabilities() ne contient pas Rotation), passez 0 ici.

L'button qui a provoqué l'événement est fournie sous la forme d'une valeur issue de l'énumération Qt::MouseButton. Si l'événement type n'est ni TabletPress ni TabletRelease, le bouton approprié pour cet événement est Qt::NoButton.

buttons correspond à 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().

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

Crée par « move » une instance de ` QTabletEvent`. Cette fonction est supprimée.

qreal QTabletEvent::pressure() const

Renvoie la pression exercée par le stylet. La valeur 0,0 indique que le stylet n'est pas en contact avec la tablette, tandis que la valeur 1,0 correspond à la pression maximale exercée par le stylet.

Voir également tangentialPressure().

qreal QTabletEvent::rotation() const

Renvoie la rotation de l'outil actuel en degrés : zéro signifie que la pointe du stylet est orientée vers le haut de la tablette, une valeur positive indique qu'elle est tournée vers la droite, et une valeur négative qu'elle est tournée vers la gauche. Cette valeur peut être fournie par une souris 4D ou un stylet prenant en charge la rotation (tel que le Wacom Art Pen ou l'Apple Pencil). Si le périphérique ne prend pas en charge la rotation, cette valeur est toujours égale à 0,0.

qreal QTabletEvent::tangentialPressure() const

Renvoie la pression tangentielle de l'appareil. Celle-ci est généralement réglée à l'aide d'une molette située sur un aérographe. La plage va de -1,0 à 1,0. La valeur 0,0 correspond à la position neutre. Les aérographes actuels ne peuvent évoluer que dans le sens positif à partir de la position neutre. Si le périphérique ne prend pas en charge la pression tangentielle, cette valeur est toujours égale à 0,0.

Remarque : la valeur est stockée sous forme de nombre à virgule flottante en précision simple.

Voir également pressure().

qreal QTabletEvent::xTilt() const

Renvoie l'angle entre le périphérique (un stylet, par exemple) et la perpendiculaire à l'axe 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 tridimensionnel

Remarque : la valeur est stockée sous forme de nombre à virgule flottante simple précision.

Voir également yTilt().

qreal QTabletEvent::yTilt() const

Renvoie l'angle entre le périphérique (un stylet, par exemple) et la perpendiculaire à l'axe y. Les valeurs positives correspondent à la direction vers le bas de la tablette. L'angle est compris entre -60 et +60 degrés.

Remarque : la valeur est stockée sous forme de nombre à virgule flottante en précision simple.

Voir également xTilt().

qreal QTabletEvent::z() const

Renvoie la position Z du périphérique. En général, celle-ci est représentée par une molette sur une souris 4D. Si le périphérique ne prend pas en charge l'axe Z, cette valeur est toujours égale à zéro. Elle ne correspond pas à la pression.

Remarque : la valeur est stockée sous forme de nombre à virgule flottante en précision simple.

Voir également pressure().

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

La commande « Move » affecte « other » à cette instance « QTabletEvent ». Cette fonction est supprimée.

[noexcept protected default] QTabletEvent &QTabletEvent::operator=(const QTabletEvent &other)

Attribue par copie l'objet other à cette instance QTabletEvent.

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