Тип QML SignalTransition
Тип SignalTransition обеспечивает переход, основанный на сигнале Qt. Подробнее...
| Заявление об импорте: | import QtQml.StateMachine 1.11 |
| С: | Qt 5.4 |
| Наследует: |
Свойства
Подробное описание
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