QWheelEvent Class
La classe QWheelEvent contient des paramètres qui décrivent un événement de roue. Plus d'informations...
| En-tête : | #include <QWheelEvent> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
| Héritages : | QSinglePointEvent |
- Liste de tous les membres, y compris les membres hérités
- les membres obsolètes
- QWheelEvent fait partie des classes d'événements.
Propriétés
|
|
Fonctions publiques
| QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized, const QPointingDevice *device = QPointingDevice::primaryPointingDevice()) | |
| QPoint | angleDelta() const |
| bool | inverted() const |
| Qt::ScrollPhase | phase() const |
| QPoint | pixelDelta() const |
Fonctions publiques réimplémentées
| virtual bool | isBeginEvent() const override |
| virtual bool | isEndEvent() const override |
| virtual bool | isUpdateEvent() const override |
Description détaillée
Les événements de roue sont envoyés au widget situé sous le curseur de la souris, mais si ce widget ne gère pas l'événement, ils sont envoyés au widget cible. Les événements de roue sont générés à la fois par les roues de la souris et par les gestes de défilement du pavé tactile. Il existe deux façons de lire le delta d'un événement de roue : angleDelta() renvoie les deltas en degrés de roue. Ces valeurs sont toujours fournies. pixelDelta() renvoie les deltas en pixels de l'écran et est disponible sur les plateformes dotées d'un trackpad à haute résolution, comme macOS. Si c'est le cas, device()->type() renverra QInputDevice::DeviceType::Touchpad.
Les fonctions position() et globalPosition() renvoient l'emplacement du curseur de la souris au moment de l'événement.
Un événement de roue contient un drapeau d'acceptation spécial qui indique si le récepteur veut l'événement. Vous devez appeler ignore() si vous ne gérez pas l'événement de la roue ; cela garantit qu'il sera envoyé au widget parent.
La fonction QWidget::setEnabled() peut être utilisée pour activer ou désactiver les événements liés à la souris et au clavier pour un widget.
Le gestionnaire d'événements QWidget::wheelEvent() reçoit les événements de roue.
Voir également QMouseEvent et QWidget::grabMouse().
Documentation sur les propriétés
[read-only] angleDelta : QPoint
Cette propriété indique l'ampleur relative de la rotation de la molette, en huitièmes de degré
Une valeur positive indique que la molette a été tournée vers l'avant en s'éloignant de l'utilisateur ; une valeur négative indique que la molette a été tournée vers l'arrière en se rapprochant de l'utilisateur. angleDelta().y() indique l'angle de rotation de la molette verticale commune de la souris depuis l'événement précédent. angleDelta().x() indique l'angle de rotation de la molette horizontale de la souris, si la souris est dotée d'une molette horizontale ; dans le cas contraire, la valeur reste égale à zéro.
La plupart des types de souris fonctionnent par pas de 15 degrés, auquel cas la valeur delta est un multiple de 120, c'est-à-dire 120 unités * 1/8 = 15 degrés.
Remarque : sur les plates-formes prenant en charge le défilement phases, le delta peut être nul lorsque le défilement est sur le point de commencer (Qt::ScrollBegin) ou s'est terminé (Qt::ScrollEnd).
Fonctions d'accès :
| QPoint | angleDelta() const |
Voir également pixelDelta().
[read-only] device : const QPointingDevice*
Cette propriété contient le dispositif à l'origine de l'événement de la roue
Voir aussi pointingDevice().
[read-only] inverted : bool
Cette propriété indique si les valeurs delta fournies avec l'événement sont inversées
Normalement, une roue verticale produira un QWheelEvent avec des valeurs delta positives si le haut de la roue tourne à l'opposé de la main qui l'actionne. De même, un mouvement horizontal de la roue produira un QWheelEvent avec des valeurs delta positives si le haut de la roue est déplacé vers la gauche.
Toutefois, sur certaines plateformes, cette propriété est configurable, de sorte que les mêmes opérations décrites ci-dessus produiront des valeurs delta négatives (mais avec la même ampleur). Avec la propriété inversée, un consommateur d'événements de roue peut choisir de toujours suivre la direction de la roue, quels que soient les paramètres du système, mais uniquement pour des widgets spécifiques.
Remarque : de nombreuses plateformes ne fournissent aucune information de ce type. Sur ces plateformes, inverted renvoie toujours false.
Fonctions d'accès :
| bool | inverted() const |
[read-only] phase : Qt::ScrollPhase
Cette propriété contient la phase de défilement de cet événement de roue
Remarque : les phases Qt::ScrollBegin et Qt::ScrollEnd ne sont actuellement prises en charge que sous macOS.
Fonctions d'accès :
| Qt::ScrollPhase | phase() const |
[read-only] pixelDelta : QPoint
Cette propriété indique la distance de défilement en pixels à l'écran
Cette valeur est fournie sur les plateformes qui prennent en charge les valeurs delta haute résolution basées sur les pixels, telles que macOS. La valeur doit être utilisée directement pour faire défiler le contenu à l'écran.
Remarque : sur les plateformes qui prennent en charge le défilement phases, le delta peut être nul lorsque le défilement est sur le point de commencer (Qt::ScrollBegin) ou s'est terminé (Qt::ScrollEnd).
Remarque : sur X11, cette valeur est spécifique au pilote et n'est pas fiable, utilisez plutôt angleDelta().
Fonctions d'accès :
| QPoint | pixelDelta() const |
Voir également angleDelta().
Documentation des fonctions membres
QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized, const QPointingDevice *device = QPointingDevice::primaryPointingDevice())
Construit un objet d'événement de roue.
Le site pos indique l'emplacement du curseur de la souris dans la fenêtre. La position en coordonnées globales est spécifiée par globalPos.
pixelDelta contient la distance de défilement en pixels à l'écran, tandis que angleDelta contient l'angle de rotation de la roue. pixelDelta est facultatif et peut être nul.
Les états de la souris et du clavier au moment de l'événement sont spécifiés par buttons et modifiers.
La phase de défilement de l'événement est spécifiée par phase, et source indique s'il s'agit d'un événement authentique ou artificiel (synthétisé).
Si le système est configuré pour inverser les valeurs delta fournies avec l'événement (comme le défilement naturel du pavé tactile sur macOS), inverted doit être true. Sinon, inverted est false
Le dispositif à l'origine de l'événement de la roue est spécifié par device.
Voir également position(), globalPosition(), angleDelta(), pixelDelta(), phase(), inverted() et device().
QPoint QWheelEvent::angleDelta() const
Renvoie la valeur relative de la rotation de la molette, en huitièmes de degré. Une valeur positive indique que la roue a été tournée vers l'avant en s'éloignant de l'utilisateur ; une valeur négative indique que la roue a été tournée vers l'arrière en se rapprochant de l'utilisateur. angleDelta().y() indique l'angle de rotation de la roue verticale commune de la souris depuis l'événement précédent. angleDelta().x() indique l'angle de rotation de la roue horizontale de la souris, si la souris est dotée d'une roue horizontale ; dans le cas contraire, la valeur reste égale à zéro. Certaines souris permettent à l'utilisateur d'incliner la molette pour effectuer un défilement horizontal, et certains pavés tactiles prennent en charge un geste de défilement horizontal ; cela apparaîtra également dans angleDelta().x().
La plupart des souris fonctionnent par pas de 15 degrés, auquel cas la valeur du delta est un multiple de 120, c'est-à-dire 120 unités * 1/8 = 15 degrés.
Cependant, certaines souris ont des roues à résolution plus fine et envoient des valeurs delta inférieures à 120 unités (moins de 15 degrés). Pour prendre en charge cette possibilité, vous pouvez soit additionner les valeurs delta des événements jusqu'à ce que la valeur de 120 soit atteinte, puis faire défiler le widget, soit faire défiler partiellement le widget en réponse à chaque événement de roue. Mais pour obtenir une sensation plus native, vous devriez préférer pixelDelta() sur les plates-formes où il est disponible.
Exemple :
void MyWidget::wheelEvent(QWheelEvent *event) { QPoint numPixels = event->pixelDelta(); QPoint numDegrees = event->angleDelta() / 8; if (!numPixels.isNull()) { scrollWithPixels(numPixels); } else if (!numDegrees.isNull()) { QPoint numSteps = numDegrees / 15; scrollWithDegrees(numSteps); } event->accept(); }
Note : Sur les plateformes qui supportent le défilement phases, le delta peut être nul lorsque :
- le défilement est sur le point de commencer, mais la distance n'a pas encore changé (Qt::ScrollBegin),
- ou que le défilement est terminé et que la distance n'a pas changé (Qt::ScrollEnd).
Remarque : fonction d'obtention pour la propriété angleDelta.
Voir également pixelDelta().
bool QWheelEvent::inverted() const
Indique si les valeurs delta fournies avec l'événement sont inversées.
Normalement, une roue verticale produira un QWheelEvent avec des valeurs delta positives si le haut de la roue tourne à l'opposé de la main qui l'actionne. De même, un mouvement horizontal de la roue produira un QWheelEvent avec des valeurs delta positives si le haut de la roue est déplacé vers la gauche.
Toutefois, sur certaines plateformes, cette propriété est configurable, de sorte que les mêmes opérations décrites ci-dessus produiront des valeurs delta négatives (mais avec la même ampleur). Avec la propriété inversée, un consommateur d'événements de roue peut choisir de toujours suivre la direction de la roue, quels que soient les paramètres du système, mais seulement pour des widgets spécifiques. (Un tel cas d'utilisation pourrait être que l'utilisateur fasse tourner la roue dans le même sens qu'un Tumbler visuel. Un autre cas d'utilisation consiste à faire en sorte que la poignée d'un curseur suive la direction du mouvement des doigts sur un pavé tactile, quelle que soit la configuration du système).
Remarque : de nombreuses plateformes ne fournissent aucune information de ce type. Sur ces plates-formes, la propriété inverted renvoie toujours false.
Note : Fonction Getter pour la propriété inverted.
[override virtual] bool QWheelEvent::isBeginEvent() const
Réimplémente : QSinglePointEvent::isBeginEvent() const.
Renvoie true si l'événement phase() est Qt::ScrollBegin.
[override virtual] bool QWheelEvent::isEndEvent() const
Réimplémente : QSinglePointEvent::isEndEvent() const.
Renvoie true si l'événement phase() est Qt::ScrollEnd.
[override virtual] bool QWheelEvent::isUpdateEvent() const
Réimplémente : QSinglePointEvent::isUpdateEvent() const.
Renvoie true si l'événement phase() est Qt::ScrollUpdate ou Qt::ScrollMomentum.
Qt::ScrollPhase QWheelEvent::phase() const
Renvoie la phase de défilement de cet événement de roue.
Remarque : les phases Qt::ScrollBegin et Qt::ScrollEnd ne sont actuellement prises en charge que sous macOS.
Note : Fonction Getter pour la phase de propriété.
QPoint QWheelEvent::pixelDelta() const
Renvoie la distance de défilement en pixels à l'écran. Cette valeur est fournie sur les plateformes qui prennent en charge les valeurs delta haute résolution basées sur les pixels, comme macOS. La valeur doit être utilisée directement pour faire défiler le contenu à l'écran.
Exemple :
void MyWidget::wheelEvent(QWheelEvent *event) { QPoint numPixels = event->pixelDelta(); QPoint numDegrees = event->angleDelta() / 8; if (!numPixels.isNull()) { scrollWithPixels(numPixels); } else if (!numDegrees.isNull()) { QPoint numSteps = numDegrees / 15; scrollWithDegrees(numSteps); } event->accept(); }
Remarque : sur les plates-formes qui prennent en charge le défilement phases, le delta peut être nul dans les cas suivants :
- le défilement est sur le point de commencer, mais la distance n'a pas encore changé (Qt::ScrollBegin),
- ou que le défilement est terminé et que la distance n'a pas changé (Qt::ScrollEnd).
Remarque : sous X11, cette valeur est spécifique au pilote et n'est pas fiable, utilisez plutôt angleDelta().
Note : Fonction d'obtention pour la propriété pixelDelta.
© 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.