Spec-Zone.ru › Qt 5.15

Тип QML SignalTransition

Тип SignalTransition предоставляет переход, основанный на сигнале Qt. Подробнее...

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

QSignalTransition

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

Свойства

  • guard : bool
  • signal : сигнал

Подробное описание

SignalTransition является частью фреймворка декларативной машины состояний.

Пример использования

import QtQuick 2.0
import QtQml.StateMachine 1.0 as DSM

Rectangle {
    DSM.StateMachine {
        id: stateMachine
        initialState: state
        running: true
        DSM.State {
            id: state
            DSM.SignalTransition {
                targetState: finalState
                signal: button.clicked
                guard: guardButton.checked
            }
        }
        DSM.FinalState {
            id: finalState
        }
        onFinished: Qt.quit()
    }
    Row {
        spacing: 2
        Button {
            id: button
            text: "Finish state"
        }

        Button {
            id: guardButton
            checkable: true
            text: checked ? "Press to block the SignalTransition" : "Press to unblock the SignalTransition"
        }
    }
}

См. также StateMachine, FinalState и TimeoutTransition.

Документация по свойствам

guard : bool

Условие защиты влияет на поведение машины состояний, разрешая переходы только при их истинности и отключая их при ложности.

Когда сигнал, связанный с этим сигнальным переходом, генерируется, проверяется условие защиты. В условии защиты могут использоваться аргументы сигнала, как показано в примере ниже.

import QtQuick 2.0
import QtQml.StateMachine 1.0 as DSM

Rectangle {
    Button {
        anchors.fill: parent
        id: button
        DSM.StateMachine {
            DSM.State {
                DSM.SignalTransition {
                    targetState: finalState
                    signal: button.mysignal
                    // the guard condition uses the mystr string argument from mysignal
                    guard: mystr == "test"
                }
            }
            DSM.FinalState {
                id: finalState
            }
        }
        // define the signal the SignalTransition is connected with
        signal mysignal(mystr: string)
        // on clicking the button emit the signal with a single string argument
        onClicked: button.mysignal("test")
    }
}

См. также signal.

signal : сигнал

Сигнал, связанный с этим сигнальным переходом.

import QtQuick 2.0
import QtQml.StateMachine 1.0 as DSM

Rectangle {
    Button {
        anchors.fill: parent
        id: button
        DSM.StateMachine {
            DSM.State {
                DSM.SignalTransition {
                    targetState: finalState
                    signal: button.clicked
                }
            }
            DSM.FinalState {
                id: finalState
            }
        }
    }
}

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtqml-statemachine-signaltransition.html

Spec-Zone.ru

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