QState Class

QState 클래스는 QStateMachine 에 대한 범용 상태를 제공합니다. 더 보기...

헤더: #include <QState>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
상속합니다: QAbstractState
상속 대상:

QStateMachine

공용 유형

enum ChildMode { ExclusiveStates, ParallelStates }
enum RestorePolicy { DontRestoreProperties, RestoreProperties }

속성

공공 기능

QState(QState *parent = nullptr)
QState(QState::ChildMode childMode, QState *parent = nullptr)
virtual ~QState()
QAbstractTransition *addTransition(QAbstractState *target)
void addTransition(QAbstractTransition *transition)
QSignalTransition *addTransition(const QObject *sender, const char *signal, QAbstractState *target)
QSignalTransition *addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target)
void assignProperty(QObject *object, const char *name, const QVariant &value)
QBindable<QState::ChildMode> bindableChildMode()
QBindable<QAbstractState *> bindableErrorState()
QBindable<QAbstractState *> bindableInitialState()
QState::ChildMode childMode() const
QAbstractState *errorState() const
QAbstractState *initialState() const
void removeTransition(QAbstractTransition *transition)
void setChildMode(QState::ChildMode mode)
void setErrorState(QAbstractState *state)
void setInitialState(QAbstractState *state)
QList<QAbstractTransition *> transitions() const

신호

재구현된 보호 기능

virtual bool event(QEvent *e) override
virtual void onEntry(QEvent *event) override
virtual void onExit(QEvent *event) override

상세 설명

QState 객체는 자식 상태를 가질 수 있으며 다른 상태로 전환할 수 있습니다. QState는 Qt State Machine 프레임워크의 일부입니다.

addTransition() 함수는 전환을 추가합니다. removeTransition () 함수는 전환을 제거합니다. transitions () 함수는 상태의 나가는 전환을 반환합니다.

assignProperty() 함수는 상태가 입력될 때 수행해야 하는 속성 할당을 정의하는 데 사용됩니다.

최상위 상태는 QStateMachine 객체를 부모 상태로 전달하거나 QStateMachine::addState()를 사용하여 상태 머신에 추가해야 합니다.

자식 상태가 있는 상태

childMode 속성은 자식 상태의 처리 방식을 결정합니다. 병렬이 아닌 상태 그룹의 경우 setInitialState() 함수를 호출하여 초기 상태를 설정해야 합니다. 자식 상태는 상호 배타적인 상태이며, 상태 머신은 부모 상태가 전환 대상일 때 어떤 자식 상태를 입력할지 알아야 합니다.

최종 자식 상태(QFinalState)가 입력되면 상태는 QState::finished() 신호를 보냅니다.

setErrorState()는 상태의 오류 상태를 설정합니다. 오류 상태는 상태 진입을 시도할 때 오류가 감지될 경우(예: 초기 상태가 설정되지 않아서) 상태 머신이 전환할 상태입니다.

멤버 유형 문서

enum QState::ChildMode

이 열거형은 스테이트의 하위 상태가 처리되는 방식을 지정합니다.

Constant설명
QState::ExclusiveStates0하위 상태는 상호 배타적이며 초기 상태는 QState::setInitialState()를 호출하여 설정해야 합니다.
QState::ParallelStates1자식 상태는 병렬입니다. 부모 상태가 입력되면 모든 자식 상태가 병렬로 입력됩니다.

enum QState::RestorePolicy

이 열거형은 복원 정책 유형을 지정합니다. 복원 정책은 머신이 하나 이상의 속성을 설정하는 상태로 진입할 때 적용됩니다. 복원 정책이 복원 프로퍼티로 설정된 경우, 상태 머신은 새 값이 설정되기 전에 프로퍼티의 원래 값을 저장합니다.

나중에 머신이 지정된 속성의 값을 설정하지 않는 상태가 되면 속성은 자동으로 초기 값으로 복원됩니다.

특정 프로퍼티에 대해 하나의 초기 값만 저장됩니다. 프로퍼티의 값이 이미 상태 머신에 저장되어 있는 경우 프로퍼티가 성공적으로 복원될 때까지 덮어쓰지 않습니다.

상수설명
QState::DontRestoreProperties0스테이트 머신은 프로퍼티의 초기 값을 저장하고 나중에 복원해서는 안 됩니다.
QState::RestoreProperties1상태 머신은 프로퍼티의 초기 값을 저장하고 나중에 복원해야 합니다.

QStateMachine::globalRestorePolicyQState::assignProperty()도 참조하세요 .

프로퍼티 문서

[bindable] childMode : ChildMode

참고: 이 프로퍼티는 QProperty 바인딩을 지원합니다.

이 속성은 이 상태의 하위 모드를 보유합니다.

이 속성의 기본값은 QState::ExclusiveStates 입니다.

[bindable] errorState : QAbstractState*

참고: 이 속성은 QProperty 바인딩을 지원합니다.

이 프로퍼티는 이 상태의 오류 상태를 보유합니다.

[bindable] initialState : QAbstractState*

참고: 이 프로퍼티는 QProperty 바인딩을 지원합니다.

이 프로퍼티는 이 상태의 초기 상태(하위 상태 중 하나)를 보유합니다.

멤버 함수 문서

QState::QState(QState *parent = nullptr)

주어진 parent 상태로 새 상태를 만듭니다.

QState::QState(QState::ChildMode childMode, QState *parent = nullptr)

주어진 childMode 상태와 주어진 parent 상태를 사용하여 새 상태를 생성합니다.

[virtual noexcept] QState::~QState()

이 상태를 파괴합니다.

QAbstractTransition *QState::addTransition(QAbstractState *target)

이 상태에서 주어진 target 상태로 무조건 전환을 추가한 다음 새 전환 객체를 반환합니다.

void QState::addTransition(QAbstractTransition *transition)

주어진 transition 을 추가합니다. 트랜지션은 이 상태를 소스로 사용합니다. 이 상태는 트랜지션의 소유권을 갖습니다.

QSignalTransition *QState::addTransition(const QObject *sender, const char *signal, QAbstractState *target)

주어진 sender 객체의 주어진 signal 와 연관된 전환을 추가하고 새 QSignalTransition 객체를 반환합니다. 트랜지션은 이 상태를 소스로, 지정된 target 을 대상 상태로 사용합니다.

template <typename PointerToMemberFunction> QSignalTransition *QState::addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target)

이 함수는 오버로드된 함수입니다.

주어진 sender 객체의 주어진 signal 와 연관된 전환을 추가하고 새 QSignalTransition 객체를 반환합니다. 트랜지션은 이 상태를 소스로, 지정된 target 상태를 대상으로 합니다.

void QState::assignProperty(QObject *object, const char *name, const QVariant &value)

상태를 입력할 때 주어진 object 의 주어진 name 속성을 주어진 value 로 설정하도록 지시합니다.

propertiesAssigned()도 참조하세요 .

QState::ChildMode QState::childMode() const

이 상태의 자식 모드를 반환합니다.

참고: childMode 프로퍼티에 대한 겟터 함수입니다.

setChildMode()도 참조하세요 .

[private signal] void QState::childModeChanged()

이 신호는 childMode 속성이 변경될 때 발생합니다.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 발신할 수는 없습니다.

참고: childMode 속성에 대한 알림 신호입니다.

QState::childMode도 참조하세요 .

QAbstractState *QState::errorState() const

이 상태의 오류 상태를 반환합니다.

참고: errorState 프로퍼티에 대한 게터 함수입니다.

setErrorState() 및 QStateMachine::error()도 참조하세요 .

[private signal] void QState::errorStateChanged()

이 신호는 errorState 속성이 변경될 때 발생합니다.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 발신할 수는 없습니다.

참고: errorState 속성에 대한 알림 신호입니다.

QState::errorState도 참조하세요 .

[override virtual protected] bool QState::event(QEvent *e)

다시 구현합니다: QAbstractState::event(QEvent *e).

[private signal] void QState::finished()

이 신호는 이 상태의 최종 하위 상태가 입력될 때 발산됩니다.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 방출할 수는 없습니다.

QFinalState참조하세요 .

QAbstractState *QState::initialState() const

이 상태의 초기 상태를 반환하거나, 초기 상태가 없는 경우 nullptr 를 반환합니다.

참고: 초기 상태 프로퍼티에 대한 게터 함수입니다.

setInitialState()도 참조하세요 .

[private signal] void QState::initialStateChanged()

이 신호는 initialState 속성이 변경될 때 발생합니다.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 발신할 수는 없습니다.

참고: initialState 속성에 대한 알림 신호입니다.

QState::initialState도 참조하세요 .

[override virtual protected] void QState::onEntry(QEvent *event)

다시 구현합니다: QAbstractState::onEntry(QEvent * 이벤트).

[override virtual protected] void QState::onExit(QEvent *event)

다시 구현합니다: QAbstractState::onExit(QEvent * 이벤트).

[private signal] void QState::propertiesAssigned()

이 신호는 모든 프로퍼티에 최종 값이 할당되었을 때 발생합니다. 스테이트가 애니메이션이 존재하는 하나 이상의 프로퍼티에 값을 할당하는 경우(전환에 설정되거나 스테이트 머신의 기본 애니메이션으로 설정됨), 해당 애니메이션 재생이 모두 끝날 때까지 신호가 발산되지 않습니다.

관련 애니메이션이 없거나 상태에 대해 정의된 속성 할당이 없는 경우 상태가 입력되기 직전에 신호가 발생합니다.

QState::assignProperty() 및 QAbstractTransition::addAnimation()도 참조하세요.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 방출할 수는 없습니다.

void QState::removeTransition(QAbstractTransition *transition)

이 상태에서 지정된 transition 을 제거합니다. 상태는 전환의 소유권을 해제합니다.

addTransition()도 참조하세요 .

void QState::setChildMode(QState::ChildMode mode)

이 상태의 mode 자식을 설정합니다.

참고: 속성에 대한 설정자 함수 childMode.

childMode()도 참조하세요 .

void QState::setErrorState(QAbstractState *state)

이 상태의 오류 상태를 주어진 state 으로 설정합니다. 오류 상태가 설정되지 않았거나 nullptr 로 설정된 경우 상태는 부모 상태의 오류 상태를 재귀적으로 상속합니다. 상태 자체 또는 상위 상태에 대해 오류 상태가 설정되어 있지 않으면 오류가 발생하면 컴퓨터가 실행을 중지하고 콘솔에 오류가 인쇄됩니다.

참고: 속성에 대한 세터 함수 errorState.

errorState()도 참조하세요 .

void QState::setInitialState(QAbstractState *state)

이 상태의 초기 상태를 주어진 state 으로 설정합니다. state 은 이 상태의 하위 상태여야 합니다.

참고: initialState 속성에 대한 세터 함수입니다.

initialState()도 참조하세요 .

QList<QAbstractTransition *> QState::transitions() const

이 상태의 나가는 전환(즉, 이 상태가 source state)인 전환을 반환하거나, 나가는 전환이 없는 경우 빈 목록을 반환합니다.

addTransition()도 참조하세요 .

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