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  · 

Two-way Button Example

The Two-way button example shows how to use The State Machine Framework to implement a simple state machine that toggles the current state when a button is clicked.

 int main(int argc, char **argv)
 {
     QApplication app(argc, argv);
     QPushButton button;
     QStateMachine machine;

The application's main() function begins by constructing the application object, a button and a state machine.

     QState *off = new QState();
     off->assignProperty(&button, "text", "Off");
     off->setObjectName("off");

     QState *on = new QState();
     on->setObjectName("on");
     on->assignProperty(&button, "text", "On");

The state machine has two states; on and off. When either state is entered, the text of the button will be set accordingly.

     off->addTransition(&button, SIGNAL(clicked()), on);
     on->addTransition(&button, SIGNAL(clicked()), off);

When the state machine is in the off state and the button is clicked, it will transition to the on state; when the state machine is in the on state and the button is clicked, it will transition to the off state.

     machine.addState(off);
     machine.addState(on);

The states are added to the state machine; they become top-level (sibling) states.

     machine.setInitialState(off);
     machine.start();

The initial state is off; this is the state the state machine will immediately transition to once the state machine is started.

     button.resize(100, 50);
     button.show();
     return app.exec();
 }

Finally, the button is resized and made visible, and the application event loop is entered.

Files:

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