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  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Modules  ·  Fonctions  · 

QtSensorGestures Plugins

The QtSensorGestures recognizer plugins are the way to create your own sensor gestures.

Creating software to recognize motion gestures using sensors is a huge subject not covered here.

The QSensorGesture API does not limit usage to any of the common classification methods of gesture recognition such as Hidden Markov Models, Neural Networks, Dynamic Time Warping, or even the ad-hoc heuristic recognizers of Qt's built-in sensor gesture recognizers. It's basically a signaling system for lower level gesture recogition methods and algorithms to communicate to the higher level applications.

Overview

The steps to creating a sensor gesture plugin are as follows:

 MySensorGestureRecognizer::MySensorGestureRecognizer(QObject *parent)
     : QSensorGestureRecognizer(parent)
 {
 }

 MySensorGestureRecognizer::~MySensorGestureRecognizer()
 {
 }

 bool MySensorGestureRecognizer::start()
 {
     Q_EMIT mySignal();
     return true;
 }

 bool MySensorGestureRecognizer::stop()
 {
     return true;
 }

 bool MySensorGestureRecognizer::isActive()
 {
     return true;
 }

 void  MySensorGestureRecognizer::create()
 {
 }

 QString MySensorGestureRecognizer::id() const
 {
     return QString("QtSensors.mygestures");
 }

 MySensorGesturePlugin::MySensorGesturePlugin(){}
 MySensorGesturePlugin::~MySensorGesturePlugin(){}

 QList <QSensorGestureRecognizer *>  MySensorGesturePlugin::createRecognizers()
 {
     QList <QSensorGestureRecognizer *>  recognizers;
     MySensorGestureRecognizer *recognizer = new MySensorGestureRecognizer(this);
     recognizers.append(recognizer);

     return recognizers;
 }

 QStringList MySensorGesturePlugin::supportedIds() const
 {
        return QStringList() << "QtSensors.mygestures";
 }

Recognizer Classes

If you are making sensorgestures available through the QtSensorGestures API, these are the classes to subclass.

QSensorGesturePluginInterface

The pure virtual interface to sensor gesture plugins

QSensorGestureRecognizer

The base class for a sensor gesture recognizer

Recognizer Plugins

The Sensor Gesture Recognizers that come with Qt are made using an ad-hock heurustic approach. The user cannot define their own gestures, and must learn how to perform and accomodate the pre-defined gestures herein.

A developer may use any method including computationally and training intensive well known classifiers, to produce gesture recognizers. There are currently no classes in Qt for gesture training, nor ability for the user to define their own sensor based motion gestures.

A procedure for writing ad-hock recognizers might include:

  • Obtain and gather output from the accelerometer through QAccelerometerReading of a gesture being performed.
  • Use various methods and constraints on the accelerometer data to recognize the various states:
    1. Initial 'listening' state for a gesture
    2. Start of a possible gesture, moving into a 'detecting' state
    3. End of a possible gesture, moving into a 'recognizing' state
    4. and finally, if it is recognized, the 'recognized' state, or if not recognized, move back to the 'listening' state.
  • Test procedure to make sure it is easy to perform, and will not produce too many false positive recognitions. And if used with other gestures, collisions. Meaning that gestures performed get recognized as another gesture instead.

Here is a list of included plugins and their signals

For ShakeGestures plugin:

Recognizer IdSignals
QtSensors.shakeshake

For QtSensorGestures plugin:

Recognizer IdSignalsDescriptionImages
QtSensors.covercoverHand covers up phone display for one second, when it's face up, using the Proximity and Orientation sensors.

QtSensors.doubletapdoubletapDouble tap of finger on phone, using the DoubleTap sensor.

QtSensors.hoverhoverHand hovers about 4 cm above the phone for more than 1 second, then is removed when face up, using the IR Proximity sensor.

QtSensors.pickuppickupPhone is resting face up on a flat curface, and is then picked up and brought up into viewing position, using the Accelerometer sensor.

QtSensors.shake2shakeLeft, shakeRight, shakeUp, shakeDownShake phone in a certain direction, using the Accelerometer sensor.

QtSensors.slamslamPhone is held in a top up position with a side facing forward for a moment. Swing it quickly with a downward motion like it is being used to point at something with the top corner. using the Accelerometer and Orientation sensors.

QtSensors.turnoverturnoverPhone is turned face down and placed on a surface, using Proximity and Orientation sensors.

QtSensors.twisttwistLeft, twistRightPhone is held face up and then twisted left or right (left side up or right side up) and back, using the Accelerometer and Orientation sensors.

QtSensors.whipwhipMove phone quickly down and then back up. using the Accelerometer and Orientation sensors.

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 5.0-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