QML 状态机因信号而崩溃
Posted
技术标签:
【中文标题】QML 状态机因信号而崩溃【英文标题】:QML State Machine crashing with signal 【发布时间】:2016-05-24 22:16:53 【问题描述】:以下 QML 状态机在我运行时在启动时崩溃:
import QtQuick 2.0
import QtQml.StateMachine 1.0
Item
id: thingy
signal somethingHappened
StateMachine
initialState: stateA
running: true
State
id:stateA
onEntered:console.log('entered A')
SignalTransition
targetState: stateB
signal: thingy.onSomethingHappened
State
id: stateB
onEntered: console.log('entered B')
输出只是“程序意外完成。”
如果我将signal: thingy.onSomethingHappened
更改为signal: thingy.nope
——或者如果我删除signal somethingHappened
行——那么它会按预期工作(除了我实际上无法获得触发状态更改的信号)。
我做错了吗?知道为什么会崩溃吗?
如果重要的话,在 Ubuntu x64 上使用 Qt 5.6。
【问题讨论】:
【参考方案1】:PEBCAK。我应该写没有on
前缀的信号名称:
signal: thingy.somethingHappened
它 is 是 Qt 运行时中的一个错误,当转换信号像这样设置不正确时,它会出现段错误。此错误已提交(并修复)为http://bugreports.qt.io/browse/QTBUG-53596
【讨论】:
以上是关于QML 状态机因信号而崩溃的主要内容,如果未能解决你的问题,请参考以下文章