Spec-Zone.ru › Qt 5.9

Тип QML HistoryState

Тип HistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...

Оператор импорта: import QtQml.StateMachine 1.0
С: Qt 5.4
Наследует:

QAbstractState

  • Список всех членов, включая унаследованные

Свойства

  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API