Тип HistoryState QML
Тип HistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...
| Заявление об импорте: | import QtQml.StateMachine 1.13 |
| С момента: | 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.13/qml-qtqml-statemachine-historystate.html