Sur cette page

QFinalState Class

La classe QFinalState fournit un état final. En savoir plus...

En-tête : #include <QFinalState>
CMake : find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake : QT += statemachine
Hérite de : QAbstractState

Fonctions publiques

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

Fonctions protégées réimplémentées

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

Description détaillée

Un état final sert à indiquer qu'un (ou une partie d') QStateMachine e a terminé son travail. Lorsqu'un état final de niveau supérieur est atteint, le signal finished() de la machine à états est émis. En général, lorsqu’on entre dans un sous-état final (enfant d’un QState), le signal finished() de l’état parent est émis. QFinalState fait partie du frameworkQt State Machine .

Pour utiliser un état final, vous créez un objet QFinalState et vous y ajoutez une transition depuis un autre état. Exemple :

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();

Voir également QState::finished().

Documentation des fonctions membres

QFinalState::QFinalState(QState *parent = nullptr)

Crée un nouvel objet `QFinalState` avec l'état d'parent ion spécifié.

[virtual noexcept] QFinalState::~QFinalState()

Supprime cet état final.

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

Réimplémente : QAbstractState::event(QEvent *e).

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

Réimplémente : QAbstractState::onEntry(QEvent *event).

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

Réimplémente : QAbstractState::onExit(QEvent *event).

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.