Spec-Zone.ru › Qt 5.6

Тип 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/archives/qt-5.6/qml-qtqml-statemachine-historystate.html

Spec-Zone.ru

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