Тип HistoryState QML
Тип HistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...
| Заявление об импорте: | import QtQml.StateMachine 1.15 |
| С момента: | Qt 5.4 |
| Наследует: |
Свойства
- defaultState : QAbstractState
- historyType : перечисление
Подробное описание
Состояние истории — это псевдосостояние, которое представляет дочернее состояние, в котором находилось родительское состояние в последний раз, когда родительское состояние было завершено. Переход с состоянием истории в качестве целевого фактически является переходом в одно из других дочерних состояний родительского состояния. HistoryState является частью Фреймворка декларативных автоматов состояния.
Используйте свойство defaultState, чтобы задать состояние, в которое необходимо войти, если родительское состояние никогда не входило.
Пример использования
import QtQuick 2.0
import QtQml.StateMachine 1.0 as DSM
Rectangle {
Button {
anchors.fill: parent
id: button
text: "Press me"
DSM.StateMachine {
id: stateMachine
initialState: parentState
running: true
DSM.State {
id: parentState
initialState: child2
onEntered: console.log("parentState entered")
onExited: console.log("parentState exited")
DSM.State {
id: child1
onEntered: console.log("child1 entered")
onExited: console.log("child1 exited")
}
DSM.State {
id: child2
onEntered: console.log("child2 entered")
onExited: console.log("child2 exited")
}
DSM.HistoryState {
id: historyState
defaultState: child1
}
DSM.SignalTransition {
targetState: historyState
// Clicking the button will cause the state machine to enter the child state
// that parentState was in the last time parentState was exited, or the history state's default
// state if parentState has never been entered.
signal: button.clicked
}
}
}
}
} По умолчанию состояние истории является поверхностным, что означает, что оно не будет запоминать вложенные состояния. Это можно настроить с помощью свойства historyType.
См. также StateMachine и State.
Документация по свойствам
defaultState : QAbstractState
Состояние по умолчанию для этого состояния истории.
Состояние по умолчанию указывает состояние, в которое необходимо перейти, если родительское состояние никогда ранее не входило.
historyType : перечисление
Тип истории, который записывает это состояние истории.
Значение по умолчанию для этого свойства — HistoryState.ShallowHistory.
Это перечисление определяет тип истории, который записывает HistoryState.
- HistoryState.ShallowHistory Записываются только непосредственные дочерние состояния родительского состояния. В этом случае переход с состоянием истории в качестве целевого приведет к непосредственному дочернему состоянию, в котором находилось родительское состояние в последний раз, когда оно выходило. Это значение по умолчанию.
- HistoryState.DeepHistory Записываются вложенные состояния. В этом случае переход с состоянием истории в качестве целевого приведет к самому глубоко вложенному дочернему состоянию, в котором находилось родительское состояние в последний раз, когда оно выходило.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtqml-statemachine-historystate.html