QScxmlStateMachine Class
QScxmlStateMachine 클래스는 SCXML 파일에서 생성된 상태 머신에 대한 인터페이스를 제공합니다. 더 보기...
| 헤더: | #include <QScxmlStateMachine> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
| qmake: | QT += scxml |
| QML에서: | ScxmlStateMachine |
| 상속: | QObject |
속성
|
|
공개 함수
| QStringList | activeStateNames(bool compress = true) const |
| QBindable<QScxmlDataModel *> | bindableDataModel() |
| QBindable<QVariantMap> | bindableInitialValues() |
| QBindable<bool> | bindableInitialized() const |
| QBindable<QList<QScxmlInvokableService *>> | bindableInvokedServices() |
| QBindable<QScxmlCompiler::Loader *> | bindableLoader() |
| QBindable<QScxmlTableData *> | bindableTableData() |
| void | cancelDelayedEvent(const QString &sendId) |
| QMetaObject::Connection | connectToEvent(const QString &scxmlEventSpec, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection) |
| QMetaObject::Connection | connectToEvent(const QString &scxmlEventSpec, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection) |
| QMetaObject::Connection | connectToEvent(const QString &scxmlEventSpec, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) |
| QMetaObject::Connection | connectToState(const QString &scxmlStateName, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection) |
| QMetaObject::Connection | connectToState(const QString &scxmlStateName, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection) |
| QMetaObject::Connection | connectToState(const QString &scxmlStateName, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) |
| QScxmlDataModel * | dataModel() const |
| QVariantMap | initialValues() |
| QList<QScxmlInvokableService *> | invokedServices() const |
| bool | isActive(const QString &scxmlStateName) const |
| bool | isDispatchableTarget(const QString &target) const |
| bool | isInitialized() const |
| bool | isInvoked() const |
| bool | isRunning() const |
| QScxmlCompiler::Loader * | loader() const |
| QString | name() const |
| QList<QScxmlError> | parseErrors() const |
| QString | sessionId() const |
| void | setDataModel(QScxmlDataModel *model) |
| void | setInitialValues(const QVariantMap &initialValues) |
| void | setLoader(QScxmlCompiler::Loader *loader) |
| void | setRunning(bool running) |
| void | setTableData(QScxmlTableData *tableData) |
| QStringList | stateNames(bool compress = true) const |
| void | submitEvent(QScxmlEvent *event) |
| void | submitEvent(const QString &eventName) |
| void | submitEvent(const QString &eventName, const QVariant &data) |
| QScxmlTableData * | tableData() const |
공개 슬롯
신호
| void | dataModelChanged(QScxmlDataModel *model) |
| void | finished() |
| void | initialValuesChanged(const QVariantMap &initialValues) |
| void | initializedChanged(bool initialized) |
| void | invokedServicesChanged(const QList<QScxmlInvokableService *> &invokedServices) |
| void | loaderChanged(QScxmlCompiler::Loader *loader) |
| void | log(const QString &label, const QString &msg) |
| void | reachedStableState() |
| void | runningChanged(bool running) |
| void | tableDataChanged(QScxmlTableData *tableData) |
정적 공용 멤버
| QScxmlStateMachine * | fromData(QIODevice *data, const QString &fileName = QString()) |
| QScxmlStateMachine * | fromFile(const QString &fileName) |
| std::function<void (bool)> | onEntry(Functor functor) |
| std::function<void (bool)> | onEntry(const QObject *receiver, const char *method) |
| std::function<void (bool)> | onEntry(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method) |
| std::function<void (bool)> | onExit(Functor functor) |
| std::function<void (bool)> | onExit(const QObject *receiver, const char *method) |
| std::function<void (bool)> | onExit(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method) |
보호된 함수
| bool | isActive(int stateIndex) const |
상세 설명
QScxmlStateMachine은 상태 차트 XML(SCXML)을 구현한 것입니다.
SCXML 파일에 정의된 모든 상태는 QScxmlStateMachine의 속성으로 접근할 수 있습니다. 이러한 속성은 부울 값이며, 상태가 활성 상태인지 비활성 상태인지를 나타냅니다.
참고: QScxmlStateMachine이 올바르게 작동하려면 이벤트 루프( QEventLoop )가 필요합니다. 이벤트 루프는 이벤트에 대한 ` delay ` 속성을 구현하고, 중첩된(또는 상위) 상태 머신에서 이벤트가 수신될 때 상태 머신의 처리를 스케줄링하는 데 사용됩니다.
속성 설명서
[bindable] dataModel : QScxmlDataModel*
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 이 상태 머신에 사용될 데이터 모델을 포함합니다.
SCXML 데이터 모델은 SCXML 사양 - 5. 데이터 모델 및 데이터 조작에 설명되어 있습니다. 지원되는 데이터 모델에 대한 자세한 내용은 SCXML 준수 항목을 참조하십시오.
상태 머신이 initialized 된 후 데이터 모델을 변경하는 것은 SCXML 표준에 명시되어 있지 않으며, 정의되지 않은 동작을 초래합니다.
액세스 함수:
| QScxmlDataModel * | dataModel() const |
| void | setDataModel(QScxmlDataModel *model) |
알림 신호:
| void | dataModelChanged(QScxmlDataModel *model) |
관련 항목: ` QScxmlDataModel`, ` QScxmlNullDataModel`, ` QScxmlCppDataModel`.
[bindable] initialValues : QVariantMap
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 데이터 모델 설정에 사용될 초기 값을 저장합니다.
액세스 함수:
| QVariantMap | initialValues() |
| void | setInitialValues(const QVariantMap &initialValues) |
알림 신호:
| void | initialValuesChanged(const QVariantMap &initialValues) |
QScxmlStateMachine::init() 및 QScxmlDataModel도 참조하십시오 .
[bindable read-only] initialized : bool
참고: 이 속성은 ‘ QProperty ’ 바인딩을 지원합니다.
이 속성은 상태 머신이 초기화되었는지 여부를 나타냅니다.
상태 머신이 초기화된 경우 ` true `이며, 그렇지 않은 경우 ` false `입니다.
액세스 함수:
| bool | isInitialized() const |
알림 신호:
| void | initializedChanged(bool initialized) |
QScxmlStateMachine::init() 및 QScxmlDataModel도 참조하십시오 .
[read-only] invoked : const bool
이 속성은 상태 머신이 외부 상태 머신에서 호출되었는지 여부를 나타냅니다.
true 상태 머신이 ` <invoke> ` 요소를 사용하여 서비스로 시작된 경우, 그렇지 않은 경우에는 ` false `입니다.
액세스 함수:
| bool | isInvoked() const |
[bindable read-only] invokedServices : QList<QScxmlInvokableService*>
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 메인 상태 머신에서 호출된(재귀적으로 호출되었을 수도 있는) SCXML 서비스 목록을 포함합니다.
액세스 함수:
| QList<QScxmlInvokableService *> | invokedServices() const |
알림 신호:
| void | invokedServicesChanged(const QList<QScxmlInvokableService *> &invokedServices) |
[bindable] loader : QScxmlCompiler::Loader*
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 상태 머신의 URI를 해결하고 로드하는 데 현재 사용 중인 로더를 포함합니다.
액세스 함수:
| QScxmlCompiler::Loader * | loader() const |
| void | setLoader(QScxmlCompiler::Loader *loader) |
알림 신호:
| void | loaderChanged(QScxmlCompiler::Loader *loader) |
[read-only] name : const QString
이 속성은 ` <scxml> ` 태그의 ` name ` 속성으로 설정된 상태 머신의 이름을 저장합니다.
액세스 함수:
| QString | name() const |
[read-only] parseErrors : const QList<QScxmlError>
이 속성은 SCXML 파일에서 상태 머신을 생성하는 과정에서 발생한 구문 분석 오류 목록을 포함합니다.
액세스 함수:
| QList<QScxmlError> | parseErrors() const |
running : bool
이 속성은 이 상태 머신의 현재 실행 상태를 저장합니다.
액세스 함수:
| bool | isRunning() const |
| void | setRunning(bool running) |
알림 신호:
| void | runningChanged(bool running) |
start()도 참조하십시오 .
[read-only] sessionId : const QString
이 속성은 현재 상태 머신의 세션 ID를 저장합니다.
세션 ID는 상위 및 하위 상태 기계 간의 메시지 라우팅에 사용됩니다. 상태 기계가 ` <invoke> ` 요소에 의해 시작되는 경우, 해당 상태 기계가 전송하는 모든 이벤트의 ` invokeid ` 필드에는 세션 ID가 설정됩니다. 상태 머신은 이벤트의 출처( <send> 요소의 target 또는 targetexpr 속성으로 설정됨)를 사용하여 메시지를 올바른 자식 상태 머신으로 전달합니다.
액세스 함수:
| QString | sessionId() const |
QScxmlEvent::invokeId()도 참조하십시오 .
[bindable] tableData : QScxmlTableData*
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 SCXML 파일에서 C++ 코드를 생성할 때 사용되는 테이블 데이터를 포함합니다.
상태 머신을 구현하는 클래스는 이 속성을 사용하여 생성된 테이블 데이터를 할당합니다. 상태 머신은 테이블 데이터에 대한 소유권을 갖지 않습니다.
액세스 함수:
| QScxmlTableData * | tableData() const |
| void | setTableData(QScxmlTableData *tableData) |
알림 신호:
| void | tableDataChanged(QScxmlTableData *tableData) |
멤버 함수 문서
[invokable] QStringList QScxmlStateMachine::activeStateNames(bool compress = true) const
활성 상태의 모든 상태 이름 목록을 반환합니다.
상태가 활성 상태일 때, 정의상 그 상태의 모든 상위 상태도 활성 상태입니다. ` compress `가 ` true `(기본값)일 경우, 상위 상태는 필터링되어 리프 상태만 반환됩니다. ` false`일 경우, 활성 상태의 전체 목록이 반환됩니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
[invokable] void QScxmlStateMachine::cancelDelayedEvent(const QString &sendId)
지정된 sendId 를 사용하여 지연된 이벤트를 취소합니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. ` Q_INVOKABLE`를 참조하십시오.
template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
scxmlEventSpec 로 지정된 이벤트에서 functor 까지, 주어진 type 에 대한 연결을 생성합니다. 여기서 는 펑터이거나 선택적 context 객체의 멤버 함수일 수 있습니다.
수신자의 functor 는 QScxmlEvent 를 매개변수로 받아야 합니다.
SCXML 문서의 이벤트 사양과 달리, 여기서의 ` scxmlEventSpec `에는 공백을 사용할 수 없습니다. 서로 다른 접두사를 가진 여러 이벤트에 연결하려면 ` connectToEvent()`를 여러 번 호출해야 합니다.
연결에 대한 핸들을 반환하며, 이 핸들은 나중에 연결을 끊는 데 사용할 수 있습니다.
QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
scxmlEventSpec 로 지정된 이벤트의 지정된 type 를 receiver 객체 내의 method 에 연결합니다. 수신자의 method 는 매개변수로 QScxmlEvent 을 받을 수 있습니다. 예:
void mySlot(const QScxmlEvent &event);SCXML 문서의 이벤트 사양과 달리, 여기서는 scxmlEventSpec 에 공백을 사용할 수 없습니다. 서로 다른 접두사를 가진 여러 이벤트에 연결하려면 connectToEvent()를 여러 번 호출해야 합니다.
연결에 대한 핸들을 반환하며, 이 핸들은 나중에 연결을 끊는 데 사용할 수 있습니다.
template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
scxmlStateName 로 지정된 상태에서 functor 로, 주어진 type 의 연결을 생성합니다. 여기서 는 펑터이거나 선택적 context 객체의 멤버 함수일 수 있습니다.
수신자의 functor 는 연결된 상태가 활성 상태가 되었는지 비활성 상태가 되었는지를 나타내는 부울(boolean) 인자를 받아야 합니다.
연결에 대한 핸들을 반환하며, 이 핸들은 나중에 연결을 끊는 데 사용할 수 있습니다.
QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
scxmlStateName 로 식별되는 상태에서 receiver 객체 내의 method 로, 지정된 type 에 대한 연결을 생성합니다. 수신자의 method 는 연결된 상태가 활성 상태가 되었는지 비활성 상태가 되었는지를 나타내는 부울형 인수를 받을 수 있습니다. 예를 들어:
void mySlot(bool active);연결에 대한 핸들을 반환하며, 이 핸들은 나중에 연결을 끊는 데 사용할 수 있습니다.
QScxmlDataModel *QScxmlStateMachine::dataModel() const
상태 머신이 사용하는 데이터 모델을 반환합니다.
참고: dataModel 속성에 대한게터 함수입니다.
참조: ` setDataModel()` 함수.
[signal] void QScxmlStateMachine::finished()
이 신호는 상태 머신이 최상위 최종 상태에 도달했을 때 발생합니다.
running도 참조하십시오 .
[static] QScxmlStateMachine *QScxmlStateMachine::fromData(QIODevice *data, const QString &fileName = QString())
data 로 지정된 QIODevice 파일을 읽어와 상태 머신을 생성합니다.
이 메서드는 항상 상태 머신을 반환합니다. SCXML 파일인 fileName 을 읽는 도중 오류가 발생하면 상태 머신을 시작할 수 없습니다. 오류 정보는 parseErrors() 메서드를 호출하여 확인할 수 있습니다.
parseErrors()도 참조하십시오 .
[static] QScxmlStateMachine *QScxmlStateMachine::fromFile(const QString &fileName)
fileName 로 지정된 SCXML 파일로부터 상태 머신을 생성합니다.
이 메서드는 항상 상태 머신을 반환합니다. SCXML 파일을 읽는 동안 오류가 발생하면 상태 머신을 시작할 수 없습니다. 오류는 parseErrors() 메서드를 호출하여 확인할 수 있습니다.
parseErrors()도 참조하십시오 .
[slot] bool QScxmlStateMachine::init()
상태 머신을 초기화합니다.
상태 머신 초기화는 ` QScxmlDataModel::setup()`를 호출하고, ` <data> ` 요소의 초기값을 설정하며, ` <scxml> ` 태그 내의 ` <script> ` 태그를 실행하는 과정으로 구성됩니다. 초기 데이터 값은 ` initialValues ` 속성에서 가져옵니다.
구문 분석 오류가 발생하거나 초기화 단계 중 하나라도 실패하면 false 를 반환합니다. 그 외의 경우에는 true 를 반환합니다.
[invokable] bool QScxmlStateMachine::isActive(const QString &scxmlStateName) const
scxmlStateName 로 지정된 상태가 활성 상태인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
[protected] bool QScxmlStateMachine::isActive(int stateIndex) const
ID가 stateIndex 인 상태가 활성화되어 있으면 true 를 반환합니다.
이 메서드는 SCXML 상태 머신의 컴파일된 표현에 대한 인터페이스의 일부입니다. 이 메서드는 내부적으로만 사용되어야 하며, SCXML 문서에서 컴파일된 상태 머신에 의해서만 사용되어야 합니다.
[invokable] bool QScxmlStateMachine::isDispatchableTarget(const QString &target) const
이 상태 머신에서 target 으로 전송되는 메시지를 발송할 수 있는 경우 ` true `을 반환합니다.
유효한 대상은 다음과 같습니다:
#_parent현재 상태 기계가<invoke>#_internal현재 상태 머신의 경우#_scxml_sessionidsessionid는 이 상태 머신이 를 사용하여 시작한 현재 상태 머신의 세션 ID입니다#_servicename, 여기서servicename는 이 상태 기계가<invoke>로 시작한 서비스의 ID 또는 이름입니다
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
bool QScxmlStateMachine::isRunning() const
상태 머신이 실행 중이면 ` true `를 반환하고, 그렇지 않으면 ` false `를 반환합니다.
참고: running 속성의게터 함수입니다.
setRunning() 및 runningChanged()도 참조하십시오 .
[signal] void QScxmlStateMachine::log(const QString &label, const QString &msg)
SCXML에서 ` <log> ` 태그가 사용된 경우 이 신호가 발생합니다. ` label `는 ` <log> ` 태그의 ` label ` 속성 값입니다. ` msg `는 ` <log> ` 태그의 ` expr ` 속성 평가 결과 값입니다. ` expr ` 속성이 없는 경우, 빈 문자열이 반환됩니다.
[static] template <typename Functor> std::function<void (bool)> QScxmlStateMachine::onEntry(Functor functor)
부울(boolean) 인자를 받아, 해당 인자가 참( true)일 경우 지정된 함수 functor 를 호출하는 펑크터(functor)를 반환합니다. 지정된 함수 functor 는 어떠한 인자도 받아서는 안 됩니다.
이는 상태에 진입했을 때만 실행되어야 하는 ` connectToState()` 핸들러를 래핑하는 데 유용합니다.
[static] std::function<void (bool)> QScxmlStateMachine::onEntry(const QObject *receiver, const char *method)
부울(boolean) 인자를 받아, 해당 인자가 ` true `이고 ` receiver `가 아직 삭제되지 않은 경우, ` QMetaObject::invokeMethod()`을 사용하여 ` receiver `에서 지정된 ` method `를 호출하는 펑터를 반환합니다.
지정된 method 는 어떠한 인수도 받아서는 안 됩니다. method 는 SIGNAL() 나 SLOT() 로 둘러싸이지 않은 단순한 메서드 이름입니다.
이는 상태에 진입했을 때만 실행되어야 하는 connectToState()에 대한 핸들러를 래핑하는 데 유용합니다.
[static] template <typename PointerToMemberFunction> std::function<void (bool)> QScxmlStateMachine::onEntry(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)
부울(boolean) 인자를 받아, 해당 인자가 참( true )이고 해당 함수 객체( receiver )가 아직 삭제되지 않은 경우, receiver 에 대해 주어진 method 를 호출하는 펑크터(functor)를 반환합니다. 주어진 method 는 어떠한 인자도 받아서는 안 됩니다.
이는 상태에 진입했을 때만 실행되어야 하는 connectToState() 핸들러를 래핑하는 데 유용합니다.
[static] template <typename Functor> std::function<void (bool)> QScxmlStateMachine::onExit(Functor functor)
부울(boolean) 인자를 받아, 해당 인자가 참( false)일 경우 지정된 ` functor `를 호출하는 펑크터를 반환합니다. 지정된 ` functor `는 어떠한 인자도 받아서는 안 됩니다.
이는 상태가 종료될 때만 실행되어야 하는 ` connectToState()` 핸들러를 래핑하는 데 유용합니다.
[static] std::function<void (bool)> QScxmlStateMachine::onExit(const QObject *receiver, const char *method)
부울형 인자를 받아, 해당 인자가 false 이고 receiver 가 아직 삭제되지 않은 경우, QMetaObject::invokeMethod()을 사용하여 receiver 에서 지정된 method 를 호출하는 펑터를 반환합니다.
지정된 method 는 어떠한 인수도 받아서는 안 됩니다. method 는 SIGNAL(...)이나 SLOT(...)으로 둘러싸이지 않은 순수한 메서드 이름입니다.
이는 상태를 벗어날 때만 실행되어야 하는 connectToState()에 대한 핸들러를 래핑하는 데 유용합니다.
[static] template <typename PointerToMemberFunction> std::function<void (bool)> QScxmlStateMachine::onExit(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)
부울형 인자를 받아들이는 펑터를 반환하며, 해당 인자가 ` false `이고 ` receiver `가 아직 삭제되지 않은 경우 ` receiver `에 대해 지정된 ` method `를 호출합니다. 지정된 ` method `는 어떠한 인자도 받아서는 안 됩니다.
이는 상태를 벗어날 때만 실행되어야 하는 connectToState()에 대한 핸들러를 감싸는 데 유용합니다.
[signal] void QScxmlStateMachine::reachedStableState()
이 신호는 매크로 단계가 끝날 때 이벤트 큐가 비어 있거나 최종 상태에 도달했을 때 발생합니다.
[signal] void QScxmlStateMachine::runningChanged(bool running)
이 신호는 ` running ` 속성이 ` running `를 인수로 받아 변경될 때 발생합니다.
참고: running 속성에 대한알림 신호입니다.
void QScxmlStateMachine::setDataModel(QScxmlDataModel *model)
이 상태 머신의 데이터 모델을 ` model`로 설정합니다. 상태 머신과 모델 간에는 1:1 관계가 있습니다. 모델을 한 번 설정하면 더 이상 변경할 수 없습니다. 이 메서드를 사용하여 모델을 다시 설정하려는 모든 시도는 무시됩니다.
참고: dataModel 속성에 대한세터 함수입니다.
참조: dataModel()
void QScxmlStateMachine::setRunning(bool running)
running 가 true 인 경우 상태 머신을 시작하고, 그렇지 않은 경우 중지합니다.
참고: running 속성에 대한세터 함수입니다.
start(), stop(), isRunning(), runningChanged()도 참조하십시오 .
[slot] void QScxmlStateMachine::start()
이 상태 머신을 시작합니다. 최상위 최종 상태에 진입하면, 이 머신은 finished() 신호를 발생시킵니다.
참고: QCoreApplication::exec() 또는 QApplication::exec()로 시작된 메인 애플리케이션 이벤트 루프와 같은 실행 중인 이벤트 루프가 없으면 상태머신이 실행되지 않습니다.
참고: stop() 호출 후 start()를호출하더라도 구성 설정이 완전히 재설정되지는 않으므로, 이를 수행하지 않는 것이 좋습니다.
참고: 완료된 머신을시작하면 경고가 발생합니다.
runningChanged(), setRunning(), stop() 및 finished()도 참조하십시오 .
[invokable] QStringList QScxmlStateMachine::stateNames(bool compress = true) const
모든 주의 주명 목록을 가져옵니다.
compress 가 true (기본값)인 경우, 자식 상태를 포함하는 상태는 필터링되어 리프 상태 만 반환됩니다. false 인 경우, 모든 상태의 전체 목록이 반환됩니다.
반환된 목록에는 중첩된 상태 머신의 상태는 포함되지 않습니다.
참고: 목록 내 상태 이름의순서는 SCXML 문서에서 상태가 나타난 순서입니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
[slot] void QScxmlStateMachine::stop()
이 상태 머신을 중지합니다. 이 상태 머신은 더 이상 상태 전이를 수행하지 않습니다. 이 상태 머신의 ` running ` 속성은 ` false`로 설정됩니다.
runningChanged(), start() 및 setRunning()도 참조하십시오 .
[invokable] void QScxmlStateMachine::submitEvent(QScxmlEvent *event)
event SCXML 이벤트를 이벤트의 우선순위에 따라 내부 또는 외부 이벤트 큐에 제출합니다.
지연 시간이 설정된 경우, 타임아웃이 경과한 후에 이벤트가 전달 대기열에 등록됩니다. 상태 머신은 ` event `에 대한 소유권을 확보한 후 처리가 완료되면 이를 삭제합니다.
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
[invokable] void QScxmlStateMachine::submitEvent(const QString &eventName)
지정된 eventName 를 이름으로 하는 외부 이벤트를 생성하고 제출하는 유틸리티 메서드입니다.
참고: 이 함수는 메타 객체 시스템과 QML을 통해 호출할 수 있습니다. ` Q_INVOKABLE`을 참조하십시오.
[invokable] void QScxmlStateMachine::submitEvent(const QString &eventName, const QVariant &data)
지정된 ` eventName `를 이름으로, ` data `를 페이로드 데이터로 사용하여 외부 이벤트를 생성하고 제출하는 유틸리티 메서드입니다.
참고: 이 함수는 메타 객체 시스템 및 QML을 통해 호출할 수 있습니다. Q_INVOKABLE 를 참조하십시오.
© 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.