Sto costruendo un'applicazione basata su QML.Come ritardare l'azione JavaScript in QML?
Per farla semplice:
Nel mio file QML principale, ho un tasto (Rectangle) chiamare una funzione JavaScript (definita in un file JS esterno) quando si fa clic:
// 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;
}
}
Come si può vedere, in questa funzione, che io chiamo n (= 3 qui) volte un'altra funzione JS per creare dinamicamente diversi QML oggetti da aggiungere alla scena:
function createObject(xPosition, yPosition)
{
component = Qt.createComponent("Symbol.qml");
component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}
Questo sta funzionando bene. Ma l'oggetto creato (Simbolo) appare nella finestraApp con un'animazione di traduzione (circa 1 sec.), E vorrei attendere il completamento dell'animazione del primo oggetto prima di creare il secondo ...
Come noi non è possibile utilizzare la funzione JavaScript setTimeOut() in QML, mi chiedo come potrei ottenere ciò. Non vedo come potrei utilizzare l'oggetto QML Timer o anche PauseAnimation ...
Qualcuno sa come aggiungere un ritardo tra 2 operazioni JavaScript QML?
Ciao, grazie per l'aiuto. anzi, potrei aspettare che l'animazione si completasse inserendo un [scriptAction] (http://doc-snapshot.qt-project.org/4.8/qml-scriptaction.html) alla fine. Tuttavia, la funzione che desidero chiamare dopo che un simbolo è stato creato potrebbe differire durante l'esecuzione del programma e ciò interromperà i miei passaggi iniziali (eseguiti nella funzione _actionOnButtonClicked() _). Nota nel mio esempio di codice, ho volutamente usato un _for_ per creare diversi oggetti in quella funzione per scopi di semplificazione, ma questa funzione esegue in realtà diverse operazioni tra la creazione di oggetti diversi ... – Benoit