0
我有兩個qml文件。我會用一個qml文件的javascript與其他qml文件的插槽連接一個信號,但它似乎不起作用。第二個文件中的插槽不會執行。帶兩個qml文件的SIGNAL/SLOT。 SLOT將不會執行
在這裏,我與狹槽連接的信號(在main.qml,GridLayout的,的onComplete):
var component = Qt.createComponent("Field.qml")
for (var i=0; i<30; i++) {
var object = component.createObject(mainGridLayout);
object.boardX = i % 5;
object.boardY = i/5;
object.board = gameboard;
gameboard.fieldChanged.connect(object.fieldChange); //<-- Connect
}
在這裏,我所定義的信號(在main.qml):
Gameboard {
id: gameboard
signal fieldChanged(int x, int y, int val) //<-- Signal defined here
onBoardFieldChanged: { //<-- Works fine from C++
fieldChanged(x,y,value);
}
}
在這裏,我所限定的狹槽(在Field.qml):
function fieldChange(x, y, val){ //<-- Slot method
if (boardX==x && boardY == y) caption.text = val;
}
控制檯中沒有錯誤,但插槽未執行。我做錯了什麼?感謝您的幫助。