StateMachine QML Type
계층적 유한 상태 기계를 제공합니다. 더 보기...
| Import Statement: | import QtQml.StateMachine 6.12 |
| Inherits: |
속성
- errorString : string
- globalRestorePolicy : enumeration
- running : bool
신호
방법
상세 설명
StateMachine은 스테이트차트(Statecharts)의 개념과 표기법을 기반으로 합니다. StateMachine은 Qt State Machine QML API의 일부입니다 .
상태 머신은 일련의 상태와 상태 간 전환을 관리하며, 이러한 상태와 전환이 상태 그래프를 정의합니다. 상태 그래프가 구축되면 상태 머신은 이를 실행할 수 있습니다. StateMachine의 실행 알고리즘은 State Chart XML(SCXML) 알고리즘을 기반으로 합니다. 프레임워크 개요에는 여러 상태 그래프와 이를 구축하는 코드가 제시되어 있습니다.
상태 머신을 시작하기 전에 ` initialState `을 설정해야 합니다. 초기 상태는 상태 머신이 시작될 때 진입하는 상태입니다. 그런 다음 `running` 속성을 `true`로 설정하거나 ` start()`를 호출하여 상태 머신을 시작할 수 있습니다. 초기 상태에 진입하면 `started` 신호가 발산됩니다.
상태 머신은 이벤트를 처리하고 최상위 최종 상태에 도달할 때까지 전이를 수행하며, 최상위 최종 상태에 도달하면 finished() 신호를 방출합니다. 또한 상태 머신을 명시적으로 stop()로 중지할 수도 있습니다(running 속성을 false로 설정할 수도 있습니다). 이 경우 stopped 신호가 방출됩니다.
사용 예
다음 코드 조각은 버튼을 클릭하면 종료되는 상태 머신을 보여줍니다:
import QtQuick
import QtQml.StateMachine as DSM
Rectangle {
Button {
anchors.fill: parent
id: button
text: "Finish state"
DSM.StateMachine {
id: stateMachine
initialState: state
running: true
DSM.State {
id: state
DSM.SignalTransition {
targetState: finalState
signal: button.clicked
}
}
DSM.FinalState {
id: finalState
}
onFinished: Qt.quit()
}
}
}오류가 발생하면 상태 머신은 errorState 를 확인하고, 해당 상태가 존재할 경우 이 상태로 진입합니다. 오류 상태에 진입한 후에는 error()를 통해 오류 유형을 확인할 수 있습니다. 오류 상태에 진입하더라도 상태 그래프의 실행은 중단되지 않습니다. 오류 상태에 해당하는 오류 상태가 없는 경우, 머신의 실행이 중단되고 콘솔에 오류 메시지가 출력됩니다.
경고: StateMachine의 childMode를 QState::ExclusiveStates 이외의 값으로설정하면 상태 머신이 유효하지 않게 되어 잘못된 동작을 유발할 수 있습니다.
QAbstractState, State, SignalTransition, TimeoutTransition, HistoryState 및 Qt State Machine QML 가이드도참조하십시오 .
속성 문서
errorString : string [read-only]
이 상태 머신의 오류 문자열입니다.
globalRestorePolicy : enumeration
이 상태 머신의 상태에 대한 복원 정책입니다.
이 속성의 기본값은 QState.DontRestoreProperties입니다.
이 열거형은 복원 정책 유형을 지정합니다. 복원 정책은 머신이 하나 이상의 속성을 설정하는 상태로 진입할 때 적용됩니다. 복원 정책이 QState.RestoreProperties로 설정된 경우, 상태 머신은 새 값이 설정되기 전에 속성의 원래 값을 저장합니다.
나중에 머신이 해당 속성에 대한 값을 설정하지 않는 상태로 진입하면, 속성은 자동으로 초기 값으로 복원됩니다.
주어진 속성에 대해서는 하나의 초기값만 저장됩니다. 상태 머신에 의해 속성의 값이 이미 저장된 경우, 해당 속성이 성공적으로 복원될 때까지 덮어쓰이지 않습니다.
- QState.DontRestoreProperties 상태 머신은 속성의 초기값을 저장했다가 나중에 복원해서는 안 됩니다.
- QState.DontRestoreProperties 상태 머신은 속성의 초기값을 저장하지 않고 나중에 복원해서는 안 됩니다. .RestoreProperties 상태 머신은 속성의 초기값을 저장하고 나중에 복원해야 합니다.
running : bool
이 상태 머신의 실행 상태.
신호 문서
started()
이 신호는 상태 머신이 초기 상태(State::initialState)로 진입했을 때 발생합니다.
참고: 해당 핸들러는 onStarted 입니다.
running, start() 및 State::finished도 참조하십시오 .
stopped()
이 신호는 상태 머신이 정지했을 때 발생합니다.
참고: 해당 핸들러는 onStopped 입니다.
running, stop() 및 State::finished도 참조하십시오 .
메서드 문서
void start()
이 상태 머신을 시작합니다. 상태 머신은 구성을 초기화하고 초기 상태로 전환합니다. 최상위 최종 상태(FinalState)에 진입하면, 상태 머신은 finished() 신호를 발생시킵니다.
참고: QCoreApplication::exec() 또는 QApplication::exec()로 시작된 메인 애플리케이션 이벤트 루프와 같은 실행 중인 이벤트 루프가 없으면 상태머신은 실행되지 않습니다.
참조: started, State::finished, stop(), State::initialState, running.
void stop()
이 상태 머신을 중지합니다. 상태 머신은 이벤트 처리를 중단한 후 ‘stopped’ 신호를 발신합니다.
© 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.