QScxmlEvent Class
QScxmlEvent 类是Qt SCXML 状态机的一个事件。更多
头文件: | #include <QScxmlEvent> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
qmake: | QT += scxml |
公共类型
enum | EventType { PlatformEvent, InternalEvent, ExternalEvent } |
属性
|
|
公共功能
QScxmlEvent() | |
QScxmlEvent(const QScxmlEvent &other) | |
~QScxmlEvent() | |
void | clear() |
QVariant | data() const |
int | delay() const |
QString | errorMessage() const |
QScxmlEvent::EventType | eventType() const |
QString | invokeId() const |
bool | isErrorEvent() const |
QString | name() const |
QString | origin() const |
QString | originType() const |
QString | scxmlType() const |
QString | sendId() const |
void | setData(const QVariant &data) |
void | setDelay(int delayInMiliSecs) |
void | setErrorMessage(const QString &message) |
void | setEventType(const QScxmlEvent::EventType &type) |
void | setInvokeId(const QString &invokeid) |
void | setName(const QString &name) |
void | setOrigin(const QString &origin) |
void | setOriginType(const QString &origintype) |
void | setSendId(const QString &sendid) |
QScxmlEvent & | operator=(const QScxmlEvent &other) |
详细说明
SCXML事件驱动转换。大多数事件是通过在应用程序中使用<raise>
和<send>
元素生成的。状态机会自动生成一些强制性事件,如错误。
更多信息,请参阅SCXML 规范 - 5.10.1 事件的内部结构。有关Qt SCXML API 与规范不同之处的更多信息,请参阅SCXML 合规性。
另请参阅 QScxmlStateMachine 。
成员类型文档
enum QScxmlEvent::EventType
该枚举类型指定 SCXML 事件的类型:
常量 | 值 | 描述 |
---|---|---|
QScxmlEvent::PlatformEvent | 0 | 状态机内部生成的事件。例如,错误。 |
QScxmlEvent::InternalEvent | 1 | 由<raise> 元素产生的事件。 |
QScxmlEvent::ExternalEvent | 2 | 由<send> 元素生成的事件。 |
属性文档
data : QVariant
该属性用于保存发送者包含的数据。
在<send>
元素中使用<param>
元素时,数据将包含一个QVariantMap ,其中 key 是name属性,而值取自expr属性或location属性。
当使用<content>
元素时,数据将包含一个单项,其值为<content>
元素的expr属性或<content>
元素的子数据。
访问功能:
delay : int
该属性用于保存在处理<send>
元素后发送事件的延迟时间(以毫秒为单位)。
访问功能:
[read-only]
errorEvent : const bool
此属性表示事件是否代表错误。
访问功能:
bool | isErrorEvent() const |
errorMessage : QString
该属性用于保存错误事件的错误信息或空QString 。
访问功能:
QString | errorMessage() const |
void | setErrorMessage(const QString &message) |
eventType : EventType
此属性表示事件的类型。
访问功能:
QScxmlEvent::EventType | eventType() const |
void | setEventType(const QScxmlEvent::EventType &type) |
invokeId : QString
如果事件是由状态机生成的,则该属性包含被调用状态机的 ID。
访问功能:
QString | invokeId() const |
void | setInvokeId(const QString &invokeid) |
name : QString
该属性包含事件名称。
如果事件是在 SCXML 文档中生成的,该属性将保存在<raise>
或<send>
元素中指定的事件属性值。
如果事件是在 C++ 代码中创建并提交到QScxmlStateMachine ,则此属性的值将与 SCXML 文档中<transition>
元素内指定的事件属性值相匹配。
访问功能:
origin : QString
该属性包含指向 SCXML 事件起源的 URI。
起源相当于<send>
元素的target属性。
访问功能:
originType : QString
该属性用于保存 SCXML 事件的起源类型。
起源类型等同于<send>
元素的type属性。
访问功能:
QString | originType() const |
void | setOriginType(const QString &origintype) |
[read-only]
scxmlType : const QString
该属性包含事件类型。
访问功能:
QString | scxmlType() const |
sendId : QString
此属性包含事件的 ID。
<cancel>
元素使用 ID 来标识要取消的事件。
注意: 如果<send>
元素中没有指定id属性,状态机会生成一个唯一的 ID。可通过此属性访问生成的 ID。
访问函数:
成员函数文档
QScxmlEvent::QScxmlEvent()
创建一个新的外部 SCXML 事件。
QScxmlEvent::QScxmlEvent(const QScxmlEvent &other)
构造other 的副本。
[noexcept]
QScxmlEvent::~QScxmlEvent()
销毁 SCXML 事件。
[invokable]
void QScxmlEvent::clear()
清除事件内容。
注: 可通过元对象系统和 QML 调用该函数。请参阅Q_INVOKABLE 。
QVariant QScxmlEvent::data() const
返回发送方包含的数据。
注: 属性数据的获取函数。
另请参阅 setData().
int QScxmlEvent::delay() const
返回处理<send>
元素后传递此事件的延迟时间(毫秒)。
注: 属性延迟的获取函数。
另请参阅 setDelay().
QString QScxmlEvent::errorMessage() const
如果是错误事件,则返回错误信息。否则,返回空QString 。
注: 属性 errorMessage 的获取函数。
另请参阅 setErrorMessage().
QScxmlEvent::EventType QScxmlEvent::eventType() const
返回此事件的类型。
注: 属性 eventType 的获取函数。
另请参阅 setEventType() 和QScxmlEvent::EventType 。
QString QScxmlEvent::invokeId() const
如果该事件由调用的状态机生成,则返回<invoke>
元素的 ID。否则,返回空值。
注: 属性 invokeId 的获取函数。
另请参阅 setInvokeId().
bool QScxmlEvent::isErrorEvent() const
如果是错误事件,则返回true
,否则返回false
。
注: 属性errorEvent 的获取函数。
QString QScxmlEvent::name() const
返回事件名称。
注: 属性名称的获取函数。
另请参阅 setName().
QString QScxmlEvent::origin() const
返回指向 SCXML 事件起源的 URI。
注: 属性 origin 的获取函数。
另请参阅 setOrigin().
QString QScxmlEvent::originType() const
返回 SCXML 事件的起源类型。
注: 属性 originType 的获取函数。
另请参阅 setOriginType().
QString QScxmlEvent::scxmlType() const
返回事件类型。
注: 属性 scxmlType 的获取函数。
QString QScxmlEvent::sendId() const
返回事件的 ID。
注: 属性 sendId 的获取函数。
另请参阅 setSendId().
void QScxmlEvent::setData(const QVariant &data)
将有效载荷数据设置为data 。
注: 属性data 的设置函数。
另请参阅 QScxmlEvent::data 。
void QScxmlEvent::setDelay(int delayInMiliSecs)
以毫秒为单位设置delayInMiliSecs 的延迟值。
注: 属性delay 的设置函数。
另请参阅 QScxmlEvent::delay 。
void QScxmlEvent::setErrorMessage(const QString &message)
如果是错误事件,则message 将被设置为错误信息。
注: 属性errorMessage 的设置函数。
另请参阅 errorMessage().
void QScxmlEvent::setEventType(const QScxmlEvent::EventType &type)
将事件类型设置为type 。
注: 属性eventType 的设置函数。
另请参阅 QScxmlEvent::eventType 和QScxmlEvent::EventType 。
void QScxmlEvent::setInvokeId(const QString &invokeid)
将调用状态机的 ID 设置为invokeid 。
注: 属性invokeId 的设置函数。
另请参见 QScxmlEvent::invokeId 。
void QScxmlEvent::setName(const QString &name)
将事件名称设置为name 。
注: 属性name 的设置函数。
另请参阅 name() 。
void QScxmlEvent::setOrigin(const QString &origin)
将 SCXML 事件的原点设置为origin 。
注: 属性origin 的设置函数。
另请参阅 QScxmlEvent::origin 。
void QScxmlEvent::setOriginType(const QString &origintype)
将 SCXML 事件的起源类型设为origintype 。
注: 属性originType 的设置函数。
另请参阅 QScxmlEvent::originType 。
void QScxmlEvent::setSendId(const QString &sendid)
为该事件设置 IDsendid 。
注: 属性sendId 的设置函数。
另请参阅 sendId().
QScxmlEvent &QScxmlEvent::operator=(const QScxmlEvent &other)
为 SCXML 事件指定other ,并返回 SCXML 事件的引用。
© 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.