考虑下面这个C++语句(来自文档示例):
QTimer::singleShot(600000, &app, SLOT(quit()));
如何在.qml JavaScript中执行相同的操作,类似于以下QML代码:
Rectangle {
property int counter: 0
onCounterChanged: {
if (counter > 42) {
// do equivalent of above C++ statement here
}
}
// more code, which actually manipulates counter
}
有一个显而易见的解决方案,就是使用单独的Timer
,然后由这段JavaScript代码启动。如果无法在一行内解决,我将接受该答案。是否可以?
repeat: false
设置为单次触发行为。 - Pavel Strakhovrepeat
是 false。 - hydesetTimeout
/setInterval
不可用,可以考虑使用 这个答案 - 一种相当 hackish 的方法。通过在函数签名中设置参数,可以将使用减少到一行,例如delay(/*repeat*/ true, 12000, functionName)
。 - BaCaRoZzo