【发布时间】:2021-02-16 14:25:31
【问题描述】:
我正在寻找访问 qml 中中继器元素内的函数。 无论我尝试直接调用该函数还是在 rect1 和 rect2 之间连接信号,它似乎都不起作用。我错过了什么或有其他方法可以做到这一点?
下面的代码是我正在使用的简化版本。
Rectangle {
signal save
id : rect1
onSave : {
rect2.saveState()
}
Repeater {
id: repeat1
model: length
delegate:
Row {
id: row1
Rectangle {
id: rect2
function saveState()
{
rect2.grabToImage(function(result) {result.saveToFile(filepath);});
}
}
}
}
}
【问题讨论】:
-
因为您使用的是Repeater,所以您可以看看它,就像有一个未知数量的
rect2,您想使用哪个? -
我明白了。假设我想使用第一个,我该怎么做?
-
使用Repeater 可以获得
count的属性和itemAt(index)doc.qt.io/qt-5/qml-qtquick-repeater.html#itemAt-method 的方法@ 请注意重复项的创建和对它的访问。如果Repeater尚未完成创建项目,itemAt()将返回null。为此使用Component.onCompleted。