Spec-Zone.ru › Qt 5.11

Тип QML SignalTransition

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

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

QSignalTransition

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

Свойства

  • guard : bool
  • signal : 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(string mystr)
        // on clicking the button emit the signal with a single string argument
        onClicked: button.mysignal("test")
    }
}

См. также signal.

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/archives/qt-5.11/qml-qtqml-statemachine-signaltransition.html

Spec-Zone.ru

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