이 페이지에서

QHistoryState Class

QHistoryState 클래스는 이전에 활성 상태였던 하위 상태로 되돌아갈 수 있는 기능을 제공합니다. 더 보기...

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

공개 유형

enum HistoryType { ShallowHistory, DeepHistory }

속성

공개 함수

QHistoryState(QState *parent = nullptr)
QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
virtual ~QHistoryState()
QBindable<QAbstractTransition *> bindableDefaultTransition()
QBindable<QHistoryState::HistoryType> bindableHistoryType()
QAbstractState *defaultState() const
QAbstractTransition *defaultTransition() const
QHistoryState::HistoryType historyType() const
void setDefaultState(QAbstractState *state)
void setDefaultTransition(QAbstractTransition *transition)
void setHistoryType(QHistoryState::HistoryType type)

신호

재구현된 보호된 함수

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

상세 설명

히스토리 상태는 부모 상태가 마지막으로 종료되었을 때 부모 상태가 있던 자식 상태를 나타내는 의사 상태입니다. 히스토리 상태를 대상으로 하는 전환은 사실 부모 상태의 하나 이상의 다른 자식 상태로 향하는 전환입니다. QHistoryState는 Qt State Machine 프레임워크의 일부입니다.

부모 상태에 한 번도 진입한 적이 없는 경우 진입해야 할 상태를 설정하려면 setDefaultState() 함수를 사용하십시오. 예:

QStateMachine machine;

QState *s1 = new QState();
QState *s11 = new QState(s1);
QState *s12 = new QState(s1);

QHistoryState *s1h = new QHistoryState(s1);
s1h->setDefaultState(s11);

machine.addState(s1);

QState *s2 = new QState();
machine.addState(s2);

QPushButton *button = new QPushButton();
// Clicking the button will cause the state machine to enter the child state
// that s1 was in the last time s1 was exited, or the history state's default
// state if s1 has never been entered.
s1->addTransition(button, SIGNAL(clicked()), s1h);

하나 이상의 기본 상태로 진입해야 하거나, 기본 상태로의 전환에 대한 동작이 필요한 경우에는 대신 defaultTransition 를 설정해야 합니다. 해당 전환의 eventTest() 메서드는 절대 호출되지 않는다는 점에 유의하십시오. 전환의 선택 및 실행은 히스토리 상태로 진입할 때 자동으로 수행됩니다.

기본적으로 히스토리 상태는 얕게 구성되며, 이는 중첩된 상태를 기억하지 않음을 의미합니다. 이는 historyType 속성을 통해 구성할 수 있습니다.

멤버 유형 문서

enum QHistoryState::HistoryType

이 열거형은 QHistoryState 가 기록하는 기록의 유형을 지정합니다.

상수값설명
QHistoryState::ShallowHistory0부모 상태의 직계 자식 상태만 기록됩니다. 이 경우, 이력 상태를 대상으로 하는 전환은 부모 상태가 마지막으로 종료되었을 때 있던 직계 자식 상태로 이동하게 됩니다. 이것이 기본값입니다.
QHistoryState::DeepHistory1중첩된 상태가 기록됩니다. 이 경우, 히스토리 상태를 대상으로 하는 전환은 부모 상태가 마지막으로 종료되었을 때 있던 가장 깊게 중첩된 하위 상태로 이동하게 됩니다.

속성 설명서

defaultState : QAbstractState*

이 속성은 이 기록 상태의 기본 상태를 저장합니다.

액세스 함수:

QAbstractState *defaultState() const
void setDefaultState(QAbstractState *state)

알림 신호:

void defaultStateChanged()[see note below]

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

[bindable] defaultTransition : QAbstractTransition*

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

이 속성은 이 기록 상태의 기본 전환 효과를 저장합니다.

액세스 함수:

QAbstractTransition *defaultTransition() const
void setDefaultTransition(QAbstractTransition *transition)

알림 신호:

void defaultTransitionChanged()[see note below]

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

[bindable] historyType : HistoryType

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

이 속성은 이 기록 상태가 기록하는 기록의 유형을 나타냅니다.

이 속성의 기본값은 ` QHistoryState::ShallowHistory`입니다.

액세스 함수:

QHistoryState::HistoryType historyType() const
void setHistoryType(QHistoryState::HistoryType type)

알림 신호:

void historyTypeChanged()[see note below]

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

멤버 함수 문서

QHistoryState::QHistoryState(QState *parent = nullptr)

지정된 ` parent ` 상태를 사용하여 새로운 얕은 히스토리 상태를 생성합니다.

QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)

지정된 type 에 대해, 지정된 parent 상태를 사용하여 새로운 히스토리 상태를 생성합니다.

[virtual noexcept] QHistoryState::~QHistoryState()

이 기록 상태를 삭제합니다.

QAbstractState *QHistoryState::defaultState() const

이 히스토리 상태의 기본 상태를 반환합니다. 기본 상태는 부모 상태에 이전에 한 번도 진입한 적이 없는 경우 전환해야 할 상태를 나타냅니다.

참고: defaultState 속성에 대한게터 함수입니다.

참조: ` setDefaultState()` 함수.

[private signal] void QHistoryState::defaultStateChanged()

defaultState 속성이 변경되면 이 신호가 발신됩니다.

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

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

참조: ` QHistoryState::defaultState`.

QAbstractTransition *QHistoryState::defaultTransition() const

이 히스토리 상태의 기본 전환을 반환합니다. 기본 전환은 해당 히스토리 상태에 이전에 한 번도 진입한 적이 없을 때 적용됩니다. 따라서 기본 전환의 대상 상태들이 기본 상태를 구성합니다.

참고: defaultTransition 속성에 대한게터 함수입니다.

참조: ` setDefaultTransition()` 함수.

[private signal] void QHistoryState::defaultTransitionChanged()

defaultTransition 속성이 변경되면 이 신호가 발생합니다.

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

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

참조: ` QHistoryState::defaultTransition`.

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

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

QHistoryState::HistoryType QHistoryState::historyType() const

이 히스토리 상태가 기록하는 히스토리의 유형을 반환합니다.

참고: historyType 속성에 대한게터 함수입니다.

참조: ` setHistoryType()` 함수.

[private signal] void QHistoryState::historyTypeChanged()

historyType 속성이 변경되면 이 신호가 발생합니다.

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

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

참조: ` QHistoryState::historyType`.

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

QAbstractState::onEntry(QEvent *event)를 재구현합니다.

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

QAbstractState::onExit(QEvent *event)를 재구현합니다.

void QHistoryState::setDefaultState(QAbstractState *state)

이 히스토리 상태의 기본 상태를 지정된 ` state`로 설정합니다. ` state `는 이 히스토리 상태와 동급 상태여야 합니다.

이 함수는 state 를 해당 부모의 초기 상태로 설정하지 않는다는 점에 유의하십시오.

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

defaultState()도 참조하십시오 .

void QHistoryState::setDefaultTransition(QAbstractTransition *transition)

이 히스토리 상태의 기본 전환을 지정된 ` transition`로 설정합니다. 이렇게 하면 ` transition `의 소스 상태가 해당 히스토리 상태로 설정됩니다.

transition 의 eventTest 메서드는 절대 호출되지 않는다는 점에 유의하십시오.

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

defaultTransition()도 참조하십시오 .

void QHistoryState::setHistoryType(QHistoryState::HistoryType type)

이 히스토리 상태가 기록하는 히스토리의 ‘ type ’를 설정합니다.

참고: historyType 속성에 대한설정 함수입니다.

historyType()도 참조하십시오 .

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