我正在构建一个基于 QML 的 C++ 应用程序。
为了简单起见:
在我的主 QML 文件中,我有一个按钮(矩形)在单击时调用 JavaScript 函数(在外部 JS 文件中定义):
// My JS file linked to the main QML window
[...]
function actionOnButtonClicked()
{
var x = 0;
var y = 0;
for(var i = 0; i < 3; i++)
{
createObject(x, y);
x = x + 10;
y = y + 10;
}
}
如您所见,在这个函数中,我调用了 n(这里 = 3)次另一个 JS 函数来动态创建几个 QML 对象以添加到场景中:
function createObject(xPosition, yPosition)
{
component = Qt.createComponent("Symbol.qml");
component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}
这工作正常。 但是创建的对象(Symbol)出现在 windowApp 中,带有翻译动画(大约 1 秒),我想等待第一个对象的动画完成,然后再创建第二个...
由于我们不能在 QML 中使用 setTimeOut() JavaScript 函数,我想知道如何实现这一点。我看不出如何使用 QML Timer 对象甚至 PauseAnimation...
有人知道如何在 2 个 QML JavaScript 操作之间添加延迟吗?
最佳答案
我觉得这个QML Timer type可以帮助您实现您想要的。
import QtQuick 2.0
Item {
Timer {
interval: 500; running: true; repeat: true
onTriggered: time.text = Date().toString()
}
Text { id: time }
}
关于javascript - 如何在 QML 中延迟 JavaScript Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11432955/