QGestureRecognizer Class
La classe `QGestureRecognizer` fournit l'infrastructure nécessaire à la reconnaissance des gestes. En savoir plus...
| En-tête : | #include <QGestureRecognizer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
Types publics
| flags | Result |
| enum | ResultFlag { Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture, ConsumeEventHint } |
Fonctions publiques
| QGestureRecognizer() | |
| virtual | ~QGestureRecognizer() |
| virtual QGesture * | create(QObject *target) |
| virtual QGestureRecognizer::Result | recognize(QGesture *gesture, QObject *watched, QEvent *event) = 0 |
| virtual void | reset(QGesture *gesture) |
Membres publics statiques
| Qt::GestureType | registerRecognizer(QGestureRecognizer *recognizer) |
| void | unregisterRecognizer(Qt::GestureType type) |
Description détaillée
Les reconnaisseurs de gestes sont chargés de créer et de gérer des objets ` QGesture `, ainsi que de surveiller les événements d'entrée envoyés aux sous-classes ` QWidget ` et ` QGraphicsObject `. `QGestureRecognizer` est la classe de base permettant d'implémenter des gestes personnalisés.
Les développeurs qui ont uniquement besoin d'assurer la reconnaissance des gestes standard n'ont pas besoin d'utiliser directement cette classe. Les instances seront créées en arrière-plan par le framework.
Pour une présentation générale de la gestion des gestes dans Qt et des informations sur leur utilisation dans vos applications, consultez le document « Gestes dans les widgets et la vue graphique ».
Reconnaissance des gestes
Le processus de reconnaissance des gestes consiste à filtrer les événements d’entrée envoyés à des objets spécifiques, puis à modifier les objets ` QGesture ` associés afin d’y inclure les informations pertinentes concernant l’entrée de l’utilisateur.
Les gestes sont créés lorsque le framework appelle la méthode ` create()` pour traiter la saisie de l’utilisateur pour une instance particulière d’une sous-classe de ` QWidget ` ou ` QGraphicsObject `. Un objet ` QGesture ` est créé pour chaque widget ou élément configuré pour utiliser les gestes.
Une fois qu’un objet ` QGesture ` a été créé pour un objet cible, le reconnaisseur de gestes recevra les événements le concernant dans sa fonction de gestion ` recognize()`.
Lorsqu’un geste est annulé, la fonction ` reset()` est appelée, ce qui permet au système de reconnaissance de mettre à jour les propriétés appropriées dans l’objet ` QGesture ` correspondant.
Prise en charge de nouveaux gestes
Pour prendre en charge de nouveaux gestes, vous devez dériver de QGestureRecognizer afin de créer une classe de reconnaissance personnalisée, construire une instance de cette classe et l’enregistrer auprès de l’application en appelant QGestureRecognizer::registerRecognizer(). Vous pouvez également créer une sous-classe de QGesture pour créer une classe de geste personnalisée, ou utiliser des propriétés dynamiques pour définir les détails spécifiques du geste que vous souhaitez gérer.
Votre sous-classe personnalisée de `QGestureRecognizer` doit réimplémenter la fonction ` recognize()` afin de gérer et de filtrer les événements d'entrée entrants pour les sous-classes de ` QWidget ` et ` QGraphicsObject `. Bien que la logique de reconnaissance des gestes soit implémentée dans cette fonction, vous pouvez stocker des informations persistantes sur l'état du processus de reconnaissance dans l'objet ` QGesture ` fourni. La fonction recognize() doit renvoyer une valeur de type QGestureRecognizer::Result indiquant l’état de la reconnaissance pour un geste et un objet cible donnés. Cela détermine si un événement de geste sera ou non transmis à un objet cible.
Si vous choisissez de représenter un geste à l'aide d'une sous-classe personnalisée de ` QGesture `, vous devrez réimplémenter la fonction ` create()` pour créer des instances de votre classe de geste. De même, vous devrez peut-être réimplémenter la fonction ` reset()` si vos objets de geste personnalisés doivent faire l'objet d'un traitement particulier lorsqu'un geste est annulé.
Voir également QGesture.
Documentation sur les types de membres
enum QGestureRecognizer::ResultFlag
flags QGestureRecognizer::Result
Cette énumération décrit le résultat de l'étape de filtrage d'événements en cours dans la machine à états d'un reconnaisseur de gestes.
Le résultat se compose d’une valeur d’état (l’une des valeurs suivantes : Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture) et d’une indication facultative (ConsumeEventHint).
| Constante | Valeur | Description |
|---|---|---|
QGestureRecognizer::Ignore | 0x0001 | L’événement ne modifie pas l’état du système de reconnaissance. |
QGestureRecognizer::MayBeGesture | 0x0002 | L’événement a modifié l’état interne du reconnaisseur, mais il n’est pas encore certain qu’il s’agisse d’un geste. Le reconnaisseur doit filtrer davantage d’événements pour se prononcer. Les reconnaisseurs de gestes se trouvant dans l’état « MayBeGesture » peuvent être réinitialisés automatiquement s’ils mettent trop de temps à reconnaître les gestes. |
QGestureRecognizer::TriggerGesture | 0x0004 | Le geste a été déclenché et l’objet ` QGesture ` approprié sera transmis à la cible dans le cadre d’un ` QGestureEvent`. |
QGestureRecognizer::FinishGesture | 0x0008 | Le geste s’est achevé avec succès et l’objet ` QGesture ` approprié sera transmis à la cible dans le cadre d’un ` QGestureEvent`. |
QGestureRecognizer::CancelGesture | 0x0010 | L’événement a clairement indiqué qu’il ne s’agit pas d’un geste. Si le détecteur de gestes était auparavant dans l’état « GestureTriggered », le geste est alors annulé et l’objet « QGesture » approprié sera transmis à la cible dans le cadre d’une « QGestureEvent ». |
QGestureRecognizer::ConsumeEventHint | 0x0100 | Cette indication précise que le framework de gestes doit consommer l’événement filtré et ne pas le transmettre au récepteur. |
Le type `Result` est un `typedef` de ` QFlags<ResultFlag>`. Il stocke une combinaison (ou) de valeurs `ResultFlag`.
Voir également QGestureRecognizer::recognize().
Documentation des fonctions membres
QGestureRecognizer::QGestureRecognizer()
Crée un nouvel objet de reconnaissance gestuelle.
[virtual noexcept] QGestureRecognizer::~QGestureRecognizer()
Supprime le détecteur de gestes.
[virtual] QGesture *QGestureRecognizer::create(QObject *target)
Cette fonction est appelée par Qt pour créer un nouvel objet ` QGesture ` pour l'target ` spécifiée (QWidget ou QGraphicsObject).
Réimplémentez cette fonction pour créer un objet de geste personnalisé dérivé de ` QGesture` si nécessaire.
QApplication prend possession de l’objet de geste créé.
[pure virtual] QGestureRecognizer::Result QGestureRecognizer::recognize(QGesture *gesture, QObject *watched, QEvent *event)
Gère l'event fournie pour l'objet watched, met à jour l'état de l'objet gesture si nécessaire, et renvoie un résultat adapté à l'étape de reconnaissance en cours.
Cette fonction est appelée par le framework afin de permettre au module de reconnaissance de filtrer les événements d'entrée transmis aux instances ` QWidget ` ou ` QGraphicsObject ` qu'il surveille.
Le résultat indique la partie du geste qui a été reconnue. L’état de l’objet ` gesture ` est défini en fonction de ce résultat.
Voir également QGestureRecognizer::Result.
[static] Qt::GestureType QGestureRecognizer::registerRecognizer(QGestureRecognizer *recognizer)
Enregistre l'recognizer donné dans le framework de gestes et renvoie un identifiant de geste correspondant.
QApplication Prend en charge l’ recognizer, et cette fonction renvoie l’ID de type de geste qui lui est associé. Pour les reconnaisseurs de gestes qui gèrent des objets QGesture personnalisés (ceux qui renvoient Qt::CustomGesture dans une fonction QGesture::gestureType()), la valeur renvoyée est un ID de geste généré avec le drapeau Qt::CustomGesture activé.
Voir également unregisterRecognizer(), QGestureRecognizer::create() et QGesture.
[virtual] void QGestureRecognizer::reset(QGesture *gesture)
Cette fonction est appelée par Qt pour réinitialiser un objet « gesture » donné.
Réimplémentez cette fonction pour prendre en charge des exigences supplémentaires liées aux objets « QGesture » personnalisés. Cela peut s'avérer nécessaire si vous implémentez un « QGesture » personnalisé dont les propriétés nécessitent un traitement particulier lors de la réinitialisation du geste.
[static] void QGestureRecognizer::unregisterRecognizer(Qt::GestureType type)
Désenregistre tous les détecteurs de gestes de l'type spécifiée.
Voir également registerRecognizer().
© 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.