Тип HistoryState QML
Тип HistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...
| Заявление импорта: | import QtQml.StateMachine |
| С версии: | Qt 5.4 |
| Наследует: |
Свойства
- defaultState : QAbstractState
- historyType : перечисление
Подробное описание
Состояние истории — это псевдосостояние, представляющее дочернее состояние, в котором находилось родительское состояние в последний раз, когда родительское состояние выходило из активного состояния. Переход со состоянием истории в качестве целевого состояния фактически представляет собой переход в одно из других дочерних состояний родительского состояния. HistoryState является частью Qt State Machine API QML.
Используйте свойство defaultState, чтобы установить состояние, в которое следует войти, если родительское состояние никогда не входило в активное состояние.
Пример использования
import QtQuick
import QtQml.StateMachine 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-6.2/qml-qtqml-statemachine-historystate.html