信号转换 QML 类型
SignalTransition 类型提供了一个基于 Qt 信号的转换。 更多...
导入声明 | import QtQml.StateMachine 6.7 |
继承 |
属性
详细描述
SignalTransition 是 Qt 状态机 QML API 的一部分。
示例用法
import QtQuick import QtQml.StateMachine 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 import QtQml.StateMachine 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 : signal |
与此信号转换相关联的信号。
import QtQuick import QtQml.StateMachine as DSM Rectangle { Button { anchors.fill: parent id: button DSM.StateMachine { DSM.State { DSM.SignalTransition { targetState: finalState signal: button.clicked } } DSM.FinalState { id: finalState } } } }
© 2024 Qt 公司有限公司。此处包含的文档贡献属于各自的著作权所有者。此处提供的文档根据自由软件基金会的发布版本 1.3 的 GNU 自由文档许可证 许可。Qt 和相应的标志是芬兰和其他国家的 Qt 公司的商标。所有其他商标均为各自所有者的财产。