- Qt 6.8
- Qt SCXML
- C++ Classes
- QScxmlEvent
- Qt 6.8.3 Reference Documentation

# QScxmlEvent Class

The QScxmlEvent class is an event for a Qt SCXML state machine. More...

Header: | `#include <QScxmlEvent>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Scxml)` `target_link_libraries(mytarget PRIVATE Qt6::Scxml)`
qmake: | `QT += scxml`

- List of all members, including inherited members

## Public Types

enum | EventType { PlatformEvent, InternalEvent, ExternalEvent }

## Properties

- data : QVariant
- delay : int
- errorEvent : const bool
- errorMessage : QString
- eventType : EventType
- invokeId : QString

- name : QString
- origin : QString
- originType : QString
- scxmlType : const QString
- sendId : QString

## Public Functions

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

## Detailed Description

SCXML events drive transitions. Most events are generated by using the `<raise>` and `<send>` elements in the application. The state machine automatically generates some mandatory events, such as errors.

For more information, see SCXML Specification - 5.10.1 The Internal Structure of Events. For more information about how the Qt SCXML API differs from the specification, see SCXML Compliance.

See also QScxmlStateMachine.

## Member Type Documentation

### enum QScxmlEvent::EventType

This enum type specifies the type of an SCXML event:

Constant | Value | Description
--- | --- | ---
`QScxmlEvent::PlatformEvent` | `0` | An event generated internally by the state machine. For example, errors.
`QScxmlEvent::InternalEvent` | `1` | An event generated by a `<raise>` element.
`QScxmlEvent::ExternalEvent` | `2` | An event generated by a `<send>` element.

## Property Documentation

### data : QVariant

This property holds the data included by the sender.

When `<param>` elements are used in the `<send>` element, the data will contain a QVariantMap where the key is the name attribute, and the value is taken from the expr attribute or the location attribute.

When a `<content>` element is used, the data will contain a single item with either the value of the expr attribute of the `<content>` element or the child data of the `<content>` element.

Access functions:

QVariant | data() const
void | setData(const QVariant &data)

### delay : int

This property holds the delay in milliseconds after which the event is to be delivered after processing the `<send>` element.

Access functions:

int | delay() const
void | setDelay(int delayInMiliSecs)

### `[read-only]` errorEvent : const bool

This property holds whether the event represents an error.

Access functions:

bool | isErrorEvent() const

### errorMessage : QString

This property holds an error message for an error event, or an empty QString.

Access functions:

QString | errorMessage() const
void | setErrorMessage(const QString &message)

### eventType : EventType

This property holds the type of the event.

Access functions:

QScxmlEvent::EventType | eventType() const
void | setEventType(const QScxmlEvent::EventType &type)

### invokeId : QString

This property holds the ID of the invoked state machine if the event is generated by one.

Access functions:

QString | invokeId() const
void | setInvokeId(const QString &invokeid)

### name : QString

This property holds the name of the event.

If the event is generated inside the SCXML document, this property holds the value of the event attribute specified inside the `<raise>` or `<send>` element.

If the event is created in the C++ code and submitted to the QScxmlStateMachine, the value of this property is matched against the value of the event attribute specified inside the `<transition>` element in the SCXML document.

Access functions:

QString | name() const
void | setName(const QString &name)

### origin : QString

This property holds the URI that points to the origin of an SCXML event.

The origin is equivalent to the target attribute of the `<send>` element.

Access functions:

QString | origin() const
void | setOrigin(const QString &origin)

### originType : QString

This property holds the origin type of an SCXML event.

The origin type is equivalent to the type attribute of the `<send>` element.

Access functions:

QString | originType() const
void | setOriginType(const QString &origintype)

### `[read-only]` scxmlType : const QString

This property holds the event type.

Access functions:

QString | scxmlType() const

### sendId : QString

This property holds the ID of the event.

The ID is used by the `<cancel>` element to identify the event to be canceled.

Note: The state machine generates a unique ID if the id attribute is not specified in the `<send>` element. The generated ID can be accessed through this property.

Access functions:

QString | sendId() const
void | setSendId(const QString &sendid)

## Member Function Documentation

### QScxmlEvent::QScxmlEvent()

Creates a new external SCXML event.

### QScxmlEvent::QScxmlEvent(const QScxmlEvent &other)

Constructs a copy of other.

### `[noexcept]` QScxmlEvent::~QScxmlEvent()

Destroys the SCXML event.

### `[invokable]` void QScxmlEvent::clear()

Clears the contents of the event.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QVariant QScxmlEvent::data() const

Returns the data included by the sender.

Note: Getter function for property data.

See also setData().

### int QScxmlEvent::delay() const

Returns the delay in milliseconds after which this event is to be delivered after processing the `<send>` element.

Note: Getter function for property delay.

See also setDelay().

### QString QScxmlEvent::errorMessage() const

If this is an error event, returns the error message. Otherwise, returns an empty QString.

Note: Getter function for property errorMessage.

See also setErrorMessage().

### QScxmlEvent::EventType QScxmlEvent::eventType() const

Returns the type of this event.

Note: Getter function for property eventType.

See also setEventType() and QScxmlEvent::EventType.

### QString QScxmlEvent::invokeId() const

If this event is generated by an invoked state machine, returns the ID of the `<invoke>` element. Otherwise, returns an empty value.

Note: Getter function for property invokeId.

See also setInvokeId().

### bool QScxmlEvent::isErrorEvent() const

Returns `true` when this is an error event, `false` otherwise.

Note: Getter function for property errorEvent.

### QString QScxmlEvent::name() const

Returns the name of the event.

Note: Getter function for property name.

See also setName().

### QString QScxmlEvent::origin() const

Returns a URI that points to the origin of an SCXML event.

Note: Getter function for property origin.

See also setOrigin().

### QString QScxmlEvent::originType() const

Returns the origin type of an SCXML event.

Note: Getter function for property originType.

See also setOriginType().

### QString QScxmlEvent::scxmlType() const

Returns the event type.

Note: Getter function for property scxmlType.

### QString QScxmlEvent::sendId() const

Returns the ID of the event.

Note: Getter function for property sendId.

See also setSendId().

### void QScxmlEvent::setData(const QVariant &data)

Sets the payload data to data.

Note: Setter function for property data.

See also QScxmlEvent::data.

### void QScxmlEvent::setDelay(int delayInMiliSecs)

Sets the delay in milliseconds as the value of delayInMiliSecs.

Note: Setter function for property delay.

See also QScxmlEvent::delay.

### void QScxmlEvent::setErrorMessage(const QString &message)

If this is an error event, the message is set as the error message.

Note: Setter function for property errorMessage.

See also errorMessage().

### void QScxmlEvent::setEventType(const QScxmlEvent::EventType &type)

Sets the event type to type.

Note: Setter function for property eventType.

See also QScxmlEvent::eventType and QScxmlEvent::EventType.

### void QScxmlEvent::setInvokeId(const QString &invokeid)

Sets the ID of an invoked state machine to invokeid.

Note: Setter function for property invokeId.

See also QScxmlEvent::invokeId.

### void QScxmlEvent::setName(const QString &name)

Sets the name of the event to name.

Note: Setter function for property name.

See also name().

### void QScxmlEvent::setOrigin(const QString &origin)

Sets the origin of an SCXML event to origin.

Note: Setter function for property origin.

See also QScxmlEvent::origin.

### void QScxmlEvent::setOriginType(const QString &origintype)

Sets the origin type of an SCXML event to origintype.

Note: Setter function for property originType.

See also QScxmlEvent::originType.

### void QScxmlEvent::setSendId(const QString &sendid)

Sets the ID sendid for this event.

Note: Setter function for property sendId.

See also sendId().

### QScxmlEvent &QScxmlEvent::operator=(const QScxmlEvent &other)

Assigns other to this SCXML event and returns a reference to this SCXML event.