本页内容

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 框架的一部分。

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

parentState() 函数返回该状态的父状态。machine() 函数返回包含该状态的状态机。

子类化

当进入该状态时,会调用onEntry() 函数;重写此函数可在进入状态时执行自定义处理。

当退出该状态时,会调用 `onExit()` 函数;重写此函数可在退出状态时执行自定义处理。

属性文档

[bindable read-only] active : bool

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

该属性存储此状态的“活动”状态。在entered() 和exited() 信号之间,该状态处于活动状态。

访问函数:

bool active() const

通知器信号:

void activeChanged(bool active)

成员函数文档

[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 。

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