QFinalState Class

The QFinalState class provides a final state. More...

Header: #include <QFinalState>
qmake: QT += core
Since: Qt 4.6
Inherits: QAbstractState

Public Functions

QFinalState(QState *parent = nullptr)
virtual ~QFinalState()

Reimplemented Protected Functions

virtual bool event(QEvent *e) override
virtual void onEntry(QEvent *event) override
virtual void onExit(QEvent *event) override

Additional Inherited Members

Detailed Description

The QFinalState class provides a final state.

A final state is used to communicate that (part of) a QStateMachine has finished its work. When a final top-level state is entered, the state machine's finished() signal is emitted. In general, when a final substate (a child of a QState) is entered, the parent state's finished() signal is emitted. QFinalState is part of The State Machine Framework.

To use a final state, you create a QFinalState object and add a transition to it from another state. Example:

QPushButton button;

QStateMachine machine;
QState *s1 = new QState();
QFinalState *s2 = new QFinalState();
s1->addTransition(&button, SIGNAL(clicked()), s2);
machine.addState(s1);
machine.addState(s2);

QObject::connect(&machine, SIGNAL(finished()), QApplication::instance(), SLOT(quit()));
machine.setInitialState(s1);
machine.start();

See also QState::finished().

Member Function Documentation

QFinalState::QFinalState(QState *parent = nullptr)

Constructs a new QFinalState object with the given parent state.

[virtual] QFinalState::~QFinalState()

Destroys this final state.

[override virtual protected] bool QFinalState::event(QEvent *e)

Reimplemented from QAbstractState::event().

[override virtual protected] void QFinalState::onEntry(QEvent *event)

Reimplemented from QAbstractState::onEntry().

[override virtual protected] void QFinalState::onExit(QEvent *event)

Reimplemented from QAbstractState::onExit().

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support