2016-05-24 104 views
1

崩潰的啓動以下QML狀態機死機當我運行它: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,如果它很重要。

回答

3

PEBCAK。我應該寫信號的名稱,而不on前綴:

signal: thingy.somethingHappened 

是當轉換信號設置不正確,這樣,它出現segfaults Qt的運行時的錯誤。此錯誤已被提交(並修復)爲http://bugreports.qt.io/browse/QTBUG-53596