En esta página

ScxmlStateMachine QML Type

Proporciona una interfaz para las máquinas de estado creadas a partir de archivos SCXML. Más...

Import Statement: import QtScxml 6.11
In C++: QScxmlStateMachine

Propiedades

Señales

Métodos

Descripción detallada

El tipo ScxmlStateMachine es una implementación de la Carta de Estados XML (SCXML).

Todos los estados que se definen en el archivo SCXML son accesibles como propiedades de este tipo. Estas propiedades son valores booleanos e indican si el estado está activo o inactivo.

Documentación de propiedades

dataModel : ScxmlDataModel

El modelo de datos que se utilizará para esta máquina de estado.

Los modelos de datos SCXML se describen en Especificación SCXML - 5 Modelo de datos y manipulación de datos. Para obtener más información sobre los modelos de datos admitidos, consulte Cumplimiento de SCXML.

Cambiar el modelo de datos cuando la máquina de estados ha sido initialized no está especificado en el estándar SCXML y conduce a un comportamiento indefinido.

Véase también QScxmlDataModel, QScxmlNullDataModel y QScxmlCppDataModel.

initialValues : var

Los valores iniciales que se utilizarán para configurar el modelo de datos.

initialized : bool [read-only]

Esta propiedad de sólo lectura se establece en true si la máquina de estados ha sido inicializada, false en caso contrario.

invoked : bool [read-only]

Si la máquina de estados fue invocada desde una máquina de estados externa.

Esta propiedad de sólo lectura se establece en true cuando la máquina de estado se inició como un servicio con el elemento <invoke>, false en caso contrario.

invokedServices : list [read-only]

Una lista de servicios SCXML que fueron invocados desde la máquina de estado principal (posiblemente de forma recursiva).

loader : Loader

El cargador que se utiliza actualmente para resolver y cargar URIs para la máquina de estados.

name : string [read-only]

El nombre de la máquina de estado establecido por el atributo name de la etiqueta <scxml>.

parseErrors : var [read-only]

La lista de errores de análisis que se produjeron al crear una máquina de estado a partir de un archivo SCXML.

running : bool

El estado de ejecución de esta máquina de estado.

sessionId : string [read-only]

El ID de sesión de la máquina de estado actual.

El ID de sesión se utiliza para el enrutamiento de mensajes entre máquinas de estado padre e hijo. Si una máquina de estado es iniciada por un elemento <invoke>, cualquier evento que envíe tendrá el campo invokeid con el ID de sesión. La máquina de estado utilizará el origen de un evento (que es establecido por el atributo target o targetexpr en un elemento <send> ) para enviar mensajes a la máquina de estado hija correcta.

Documentación de señales

finished()

Esta señal se emite cuando la máquina de estados alcanza un estado final de nivel superior.

El manejador de señal correspondiente es onFinished().

Nota: El manejador correspondiente es onFinished.

log(string label, string msg)

Esta señal se emite si se utiliza una etiqueta <log> en el SCXML. label es el valor del atributo label de la etiqueta <log>. msg es el valor del atributo expr evaluado de la etiqueta <log>. Si no hay atributo expr, se devuelve una cadena nula.

El manejador de señal correspondiente es onLog().

Nota: El manejador correspondiente es onLog.

reachedStableState()

Esta señal se emite cuando la cola de eventos está vacía al final de un paso de macro o cuando se alcanza un estado final.

El manejador de señal correspondiente es onreachedStableState().

Nota: El manejador correspondiente es onReachedStableState.

Documentación del método

list<string> activeStateNames(bool compress)

Recupera una lista de nombres de estado de todos los estados activos.

Cuando un estado está activo, todos sus estados padre están activos por definición. Cuando compress es true (el valor predeterminado), se filtran los estados padre y sólo se devuelven los estados hoja. Cuando es false, se devuelve la lista completa de estados activos.

void cancelDelayedEvent(string sendId)

Cancela un evento retrasado con la dirección sendId especificada.

bool init()

Inicializa la máquina de estados estableciendo los valores iniciales de los elementos <data> y ejecutando cualquier etiqueta <script> de la etiqueta <scxml>. Los valores iniciales de los datos se toman de la propiedad initialValues.

Devuelve false si se producen errores de análisis o si falla alguno de los pasos de inicialización. En caso contrario, devuelve true.

bool isActive(string scxmlStateName)

Devuelve true si el estado especificado por scxmlStateName está activo, false en caso contrario.

bool isDispatchableTarget(string target)

Devuelve true si esta máquina de estado puede enviar un mensaje a target.

Los destinos válidos son

  • #_parent para la máquina de estado padre si la máquina de estado actual es iniciada por <invoke>
  • #_internal para la máquina de estado actual
  • #_scxml_sessioniddonde sessionid es el ID de sesión de la máquina de estado actual
  • #_servicenamedonde servicename es el ID o nombre de un servicio iniciado con <invoke> por esta máquina de estado

void start()

Inicia esta máquina de estado. La máquina reinicia su configuración y transiciona al estado inicial. Cuando se entra en un estado final de nivel superior, la máquina emite la señal finished().

Véase también stop() y finished().

list<string> stateNames(bool compress)

Recupera una lista de nombres de estado de todos los estados.

Cuando compress es true (el valor predeterminado), se filtran los estados que contienen estados hijos y sólo se devuelven los estados hoja. Cuando es false, se devuelve la lista completa de todos los estados.

La lista devuelta no contiene los estados de posibles máquinas de estados anidadas.

Nota: El orden de los nombres de los estados en la lista es el orden en que aparecen en el documento SCXML.

void stop()

Detiene esta máquina de estados. La máquina no ejecutará más transiciones de estado. Su propiedad running se establece en false.

Ver también start() y finished().

void submitEvent(event)

Envía el evento SCXML event a la cola de eventos interna o externa en función de la prioridad del evento.

Cuando se establece un retardo, el evento se pondrá en cola para su envío una vez transcurrido el tiempo de espera. La máquina de estado toma posesión del evento y lo elimina tras su procesamiento.

Véase también QScxmlEvent.

void submitEvent(string eventName, var data)

Un método de utilidad para crear y enviar un evento externo con el eventName especificado como nombre y data como datos de carga útil (opcional).

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