Important: Please read the Qt Code of Conduct -

QScxmlEvent questions

  • Looking at examples and documentation, it's not clear to me how to do the following:

    1. Know what happened to an event submitted in "set and forget" fashion. When machine->submitEvent is called, what can I look at to know what happened? For example, does the event even exist? Is the event queued for later execution because the origin state is not active? Did the event not trigger because of a condition?

    2. If an event is queued up and will trigger when it's origin state becomes active, how can the event be canceled?

    3. Is it possible to see and cancel all events that are queued?

    It's not clear to me that connecting to the event to get a QScxmlEvent is useful for these use cases.


  • Using the the connectToEvent method to connect to an event that does not exist still returns a connection ID. Even worse, the event is put into the event queue and there appears to be no obvious way to know that it is queued up and to remove it from the queue. If the erroneous event is sent multiple times, the call back for the event is then called multiple times, once for the most recent queued event, and again for each previous event.

    So what is the status of Qt and Scxml? Is it really ready for prime-time? Are any of you Champion's able shed light on any of this?


Log in to reply