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
						
						状态。
					
    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.
文件: