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