QHistoryState Class

QHistoryState 클래스는 이전에 활성화된 대체물로 돌아가는 수단을 제공합니다. 더 보기...

Header: #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 가 기록하는 기록 유형을 지정합니다.

Constant설명
QHistoryState::ShallowHistory0부모 상태의 바로 자식 상태만 기록됩니다. 이 경우 히스토리 상태를 대상으로 하는 전환은 부모 상태가 마지막으로 종료될 때 있었던 바로 아래 자식 상태로 종료됩니다. 이것이 기본값입니다.
QHistoryState::DeepHistory1중첩 상태가 기록됩니다. 이 경우 히스토리 상태를 대상으로 하는 트랜지션은 부모가 마지막으로 종료될 때 가장 깊게 중첩된 자식 상태로 끝납니다.

속성 문서

defaultState : QAbstractState*

이 프로퍼티는 이 기록 상태의 기본 상태를 유지합니다.

액세스 함수입니다:

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

알림 신호:

void defaultStateChanged()[see note below]

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

[bindable] defaultTransition : QAbstractTransition*

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

이 프로퍼티는 이 기록 상태의 기본 전환을 유지합니다.

[bindable] historyType : HistoryType

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

이 속성은 이 기록 상태가 기록하는 기록 유형을 보유합니다.

이 프로퍼티의 기본값은 QHistoryState::ShallowHistory 입니다.

멤버 함수 문서

QHistoryState::QHistoryState(QState *parent = nullptr)

주어진 parent 상태로 새로운 얕은 히스토리 상태를 생성합니다.

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

주어진 parent 상태와 함께 주어진 type 의 새 히스토리 상태를 구축합니다.

[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 * 이벤트).

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

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

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()도 참조하세요 .

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