Тип QML SignalTransition
Тип SignalTransition предоставляет переход, основанный на сигнале Qt. Подробнее...
| Заявление об импорте: | import QtQml.StateMachine 1.0 |
| С: | 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
Условие "guard" влияет на поведение автомата состояний, разрешая переходы только при истинности и запрещая их при ложности.
При возникновении сигнала, связанного с этим переходом, выполняется проверка условия "guard". В условии "guard" можно использовать аргументы сигнала, как показано в примере ниже.
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 : сигнал
Сигнал, связанный с этим переходом.
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.6/qml-qtqml-statemachine-signaltransition.html