QAbstractState Class

QAbstractState 类是QStateMachine基类。

头文件: #include <QAbstractState>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
继承: QObject
继承于

QFinalState,QHistoryState, 以及QState

属性

公共功能

virtual ~QAbstractState()
bool active() const
QBindable<bool> bindableActive()
QStateMachine *machine() const
QState *parentState() const

信号

void activeChanged(bool active)
void entered()
void exited()

受保护函数

QAbstractState(QState *parent = nullptr)
virtual void onEntry(QEvent *event) = 0
virtual void onExit(QEvent *event) = 0

重新实现的受保护函数

virtual bool event(QEvent *e) override

详细说明

QAbstractState 类是作为QStateMachine 一部分的状态的抽象基类。它定义了所有状态对象的共同接口。QAbstractState 是Qt State Machine Framework 的一部分。

当进入状态时,会发出entered() 信号。退出状态时,会发出exited() 信号。

parentState() 函数返回状态的父状态。machine() 函数返回状态所属的状态机。

子类化

状态进入时,调用onEntry() 函数;状态进入时,重新实现该函数以执行自定义处理。

退出状态时调用onExit() 函数;重新实现该函数可在退出状态时执行自定义处理。

属性文档

[bindable read-only] active : bool

注意: 该属性支持QProperty 绑定。

该属性持有该状态的活动属性。一个状态在entered() 和exited() 信号之间处于激活状态。

成员函数文档

[protected] QAbstractState::QAbstractState(QState *parent = nullptr)

用给定的parent 状态构建一个新状态。

[virtual noexcept] QAbstractState::~QAbstractState()

摧毁这个国家。

bool QAbstractState::active() const

返回此状态是否处于活动状态。

注: 属性 active 的获取函数。

另请参阅 activeChanged(bool)、entered() 和exited()。

[signal] void QAbstractState::activeChanged(bool active)

当使用active 作为参数的活动属性发生变化时,会发出该信号。

注: 属性active 的通知信号。

另请参阅 QAbstractState::active,entered() 和exited() 。

[private signal] void QAbstractState::entered()

进入状态后(调用onEntry() 后)发出该信号。

注意: 这是一个私有信号。可以在信号连接中使用,但用户不能发出。

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

重实现:QObject::event(QEvent *e)。

[private signal] void QAbstractState::exited()

状态退出时(调用onExit() 后)发出该信号。

注意: 这是一个私有信号。可以在信号连接中使用,但用户不能发出。

QStateMachine *QAbstractState::machine() const

返回该状态所属的状态机,如果该状态不是状态机的一部分,则返回nullptr

[pure virtual protected] void QAbstractState::onEntry(QEvent *event)

进入状态时调用该函数。给定的event 是进入状态的原因。重新实现此函数可在状态进入时执行自定义处理。

[pure virtual protected] void QAbstractState::onExit(QEvent *event)

该函数在状态退出时被调用。给定的event 是导致状态退出的原因。重新实现此函数可在状态退出时执行自定义处理。

QState *QAbstractState::parentState() const

返回该状态的父状态,如果没有父状态,则返回nullptr

© 2025 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.