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