QAbstractState 类
QAbstractState 类是 QStateMachine 的状态的基础类。更多...
头文件 | #include <QAbstractState> |
CMake | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake | QT += statemachine |
继承 | QObject |
继承自 |
属性
- active : bool
公共函数
虚拟 | ~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) | |
虚拟 void | onEntry(QEvent *event) = 0 |
虚拟 void | onExit(QEvent *event) = 0 |
重新实现保护函数
虚拟 bool | event(QEvent *e) 覆盖 |
详细描述
QAbstractState 类是 QStateMachine 的状态的抽象基类。它定义了所有状态对象共有的接口。QAbstractState 是 Qt 状态机框架的一部分。
当状态被进入时,会发出 entered() 信号。当状态被退出时,会发出 exited() 信号。
parentState() 函数返回状态的父亲状态。machine() 函数返回该状态所属的状态机。
子类化
当状态被进入时,会调用 onEntry() 函数;重写此函数以在状态被进入时执行自定义处理。
当状态被退出时,会调用 onExit() 函数;重写此函数以在状态被退出时执行自定义处理。
成员函数文档
[保护]
QAbstractState::QAbstractState(QState *parent = nullptr)
使用给定的parent状态构造一个新的状态。
[虚函数 noexcept]
QAbstractState::~QAbstractState()
销毁此状态。
bool QAbstractState::active() const
返回此状态是否活动。
注意:active属性的获取函数。
另请参阅:activeChanged(bool),entered()和exited()。
[信号]
void QAbstractState::activeChanged(bool active)
当active属性改变,并传递active作为参数时发出此信号。
注意:active属性的通知信号。
另请参阅:QAbstractState::active,entered()和exited。
[私有信号]
void QAbstractState::entered()
当状态被进入(在调用onEntry()之后)时发出此信号。
注意:这是一个私有信号。它可以用于信号连接,但不能由用户发出。
[私有虚保护]
bool QAbstractState::event(QEvent *e)
重实现了:QObject::event(QEvent *e)。
[私有信号]
void QAbstractState::exited()
当状态被退出(在调用onExit()之后)时发出此信号。
注意:这是一个私有信号。它可以用于信号连接,但不能由用户发出。
QStateMachine *QAbstractState::machine() const
返回此状态所属的状态机,如果状态不是状态机的一部分,则返回nullptr
。
[纯虚保护]
void QAbstractState::onEntry(QEvent *event)
当状态被进入时调用此函数。给定的event是导致状态被进入的原因。重新实现此函数以在状态被进入时执行自定义处理。
[纯虚保护]
void QAbstractState::onExit(QEvent *event)
当状态被退出时调用此函数。给定的event是导致状态被退出的原因。重新实现此函数以在状态被退出时执行自定义处理。
QState *QAbstractState::parentState() const
返回此状态的父状态,如果该状态没有父状态则返回 nullptr
。
© 2024 The Qt Company Ltd. 本文档中的文档贡献版权属于其各自所有者。本文档受免费软件基金会发布的 GNU 自由文档许可版本 1.3 项下的条款许可。Qt及相应标志是芬兰及其它在世界各地的 The Qt Company Ltd. 的商标。所有其他商标都是其各自所有者的财产。