【发布时间】:2014-09-25 16:50:14
【问题描述】:
我有两个 qml 文件。我会将一个 qml 文件的 javascript 与另一个 qml 文件的插槽连接起来,但它似乎不起作用。第二个文件中的槽将不会执行。
这里我把信号和槽连接起来(在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;
}
控制台没有错误,但槽没有执行。我做错什么了?感谢您的帮助。
【问题讨论】:
标签: javascript c++ qt qml