State machines in Qt
State machines can be used for many purposes, but in this chapter we will only cover topics related to animation.
How to do it…
- First, we will set up a new user interface for our example program, which looks like this:
- Next, we will include some headers in our source code:
#include <QStateMachine> #include <QPropertyAnimation> #include <QEventTransition>
- After that, in our main window's constructor, add the following code to create a new state machine and two states, which we will be using later:
QStateMachine *machine = new QStateMachine(this); QState *s1 = new QState(); QState *s2 = new QState();
- Then, we will define what we should do within each state, which in this case will be to change the label's text, as well as the button's position and size:
QState *s1 = new QState(); s1->assignProperty(ui->stateLabel, "text", "Current state: 1"); s1->assignProperty(ui->pushButton, "geometry", QRect...