Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QGestureRecognizer Class Reference

The QGestureRecognizer class provides the infrastructure for gesture recognition. More...

 #include <QGestureRecognizer>

This class was introduced in Qt 4.6.

Public Types

flags Result
enum ResultFlag { Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture, ConsumeEventHint }

Public Functions

QGestureRecognizer ()
virtual ~QGestureRecognizer ()
virtual QGesture * create ( QObject * target )
virtual Result recognize ( QGesture * gesture, QObject * watched, QEvent * event ) = 0
virtual void reset ( QGesture * gesture )

Static Public Members

Qt::GestureType registerRecognizer ( QGestureRecognizer * recognizer )
void unregisterRecognizer ( Qt::GestureType type )

Detailed Description

The QGestureRecognizer class provides the infrastructure for gesture recognition.

Gesture recognizers are responsible for creating and managing QGesture objects and monitoring input events sent to QWidget and QGraphicsObject subclasses. QGestureRecognizer is the base class for implementing custom gestures.

Developers that only need to provide gesture recognition for standard gestures do not need to use this class directly. Instances will be created behind the scenes by the framework.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures Programming document.

Recognizing Gestures

The process of recognizing gestures involves filtering input events sent to specific objects, and modifying the associated QGesture objects to include relevant information about the user's input.

Gestures are created when the framework calls create() to handle user input for a particular instance of a QWidget or QGraphicsObject subclass. A QGesture object is created for each widget or item that is configured to use gestures.

Once a QGesture has been created for a target object, the gesture recognizer will receive events for it in its recognize() handler function.

When a gesture is canceled, the reset() function is called, giving the recognizer the chance to update the appropriate properties in the corresponding QGesture object.

Supporting New Gestures

To add support for new gestures, you need to derive from QGestureRecognizer to create a custom recognizer class, construct an instance of this class, and register it with the application by calling QGestureRecognizer::registerRecognizer(). You can also subclass QGesture to create a custom gesture class, or rely on dynamic properties to express specific details of the gesture you want to handle.

Your custom QGestureRecognizer subclass needs to reimplement the recognize() function to handle and filter the incoming input events for QWidget and QGraphicsObject subclasses. Although the logic for gesture recognition is implemented in this function, you can store persistent information about the state of the recognition process in the QGesture object supplied. The recognize() function must return a value of QGestureRecognizer::Result that indicates the state of recognition for a given gesture and target object. This determines whether or not a gesture event will be delivered to a target object.

If you choose to represent a gesture by a custom QGesture subclass, you will need to reimplement the create() function to construct instances of your gesture class. Similarly, you may need to reimplement the reset() function if your custom gesture objects need to be specially handled when a gesture is canceled.

See also QGesture.

Member Type Documentation

enum QGestureRecognizer::ResultFlag
flags QGestureRecognizer::Result

This enum describes the result of the current event filtering step in a gesture recognizer state machine.

The result consists of a state value (one of Ignore, MayBeGesture, TriggerGesture, FinishGesture, CancelGesture) and an optional hint (ConsumeEventHint).

ConstantValueDescription
QGestureRecognizer::Ignore0x0001The event does not change the state of the recognizer.
QGestureRecognizer::MayBeGesture0x0002The event changed the internal state of the recognizer, but it isn't clear yet if it is a gesture or not. The recognizer needs to filter more events to decide. Gesture recognizers in the MayBeGesture state may be reset automatically if they take too long to recognize gestures.
QGestureRecognizer::TriggerGesture0x0004The gesture has been triggered and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer::FinishGesture0x0008The gesture has been finished successfully and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer::CancelGesture0x0010The event made it clear that it is not a gesture. If the gesture recognizer was in GestureTriggered state before, then the gesture is canceled and the appropriate QGesture object will be delivered to the target as a part of a QGestureEvent.
QGestureRecognizer::ConsumeEventHint0x0100This hint specifies that the gesture framework should consume the filtered event and not deliver it to the receiver.

The Result type is a typedef for QFlags<ResultFlag>. It stores an OR combination of ResultFlag values.

See also QGestureRecognizer::recognize().

Member Function Documentation

QGestureRecognizer::QGestureRecognizer ()

Constructs a new gesture recognizer object.

QGestureRecognizer::~QGestureRecognizer () [virtual]

Destroys the gesture recognizer.

QGesture * QGestureRecognizer::create ( QObject * target ) [virtual]

This function is called by Qt to create a new QGesture object for the given target (QWidget or QGraphicsObject).

Reimplement this function to create a custom QGesture-derived gesture object if necessary.

The application takes ownership of the created gesture object.

Result QGestureRecognizer::recognize ( QGesture * gesture, QObject * watched, QEvent * event ) [pure virtual]

Handles the given event for the watched object, updating the state of the gesture object as required, and returns a suitable result for the current recognition step.

This function is called by the framework to allow the recognizer to filter input events dispatched to QWidget or QGraphicsObject instances that it is monitoring.

The result reflects how much of the gesture has been recognized. The state of the gesture object is set depending on the result.

See also QGestureRecognizer::Result.

Qt::GestureType QGestureRecognizer::registerRecognizer ( QGestureRecognizer * recognizer ) [static]

Registers the given recognizer in the gesture framework and returns a gesture ID for it.

The application takes ownership of the recognizer and returns the gesture type ID associated with it. For gesture recognizers which handle custom QGesture objects (i.e., those which return Qt::CustomGesture in a QGesture::gestureType() function) the return value is a generated gesture ID with the Qt::CustomGesture flag set.

See also unregisterRecognizer(), QGestureRecognizer::create(), and QGesture.

void QGestureRecognizer::reset ( QGesture * gesture ) [virtual]

This function is called by the framework to reset a given gesture.

Reimplement this function to implement additional requirements for custom QGesture objects. This may be necessary if you implement a custom QGesture whose properties need special handling when the gesture is reset.

void QGestureRecognizer::unregisterRecognizer ( Qt::GestureType type ) [static]

Unregisters all gesture recognizers of the specified type.

See also registerRecognizer().

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 94
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes ? Manquent-ils de pouvoir de négociation ? 42
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 9
Page suivante

Le Qt Labs au hasard

Logo

Velours et QML Scene Graph

Les Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7-snapshot
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web