Spec-Zone.ru › Qt

Тип HistoryState QML

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

Заявление импорта: import QtQml.StateMachine
С версии: Qt 5.4
Наследует:

QAbstractState

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

Свойства

  • 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

Spec-Zone.ru

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