I am learning about Qt3D. Starting from one of the Qt examples, I can display a sphere and move it by QTransform::setTranslation. I want to make multiple moves, with a brief delay each time, so I have:

void MainWindow::runMover()
{
QVector3D delta = QVector3D(0.0f, 0.0f, -0.1f);
for (int i = 0; i<1000; i++) {
mover(delta);
QThread::msleep(10);
}
}

with

void MainWindow::mover(QVector3D delta)
{
modifier->moveSphere(delta);
}

and

void SceneModifier::moveSphere(QVector3D delta)
{
QVector3D trans = sphereTransform->translation();
trans = trans + delta;
sphereTransform->setTranslation(trans);
}

The function runMover() is executed when a signal is received. I expect to see a smooth movement, but instead there is a 10 second delay then suddenly the whole movement occurs. How can I make the translation by delta occur every 10 ms?