Graphique de scène - Animation multithread

Illustre les avantages des éléments personnalisés s'animant indépendamment du thread principal tout en utilisant la boucle de rendu multithread de Qt Quick.

Deux animations de spinner comparant l'animation du thread principal et celle du thread du graphe de scène avec le bouton « Bloqué »

Cet exemple illustre le concept fondamental qui sous-tend les types Animator, en implémentant un élément personnalisé qui s'anime de manière efficace sans s'appuyer sur le framework d'animation standard Qt Quick piloté sur le thread principal.

Les spinners de gauche et de droite devraient se comporter de manière identique dans des conditions normales. Cependant, dès que l’exemple bloque le thread principal en effectuant une opération gourmande en ressources, on constate que le spinner de gauche ne s’anime plus de manière fluide.

Remarque : cet exemple doit être exécuté avec la boucle de rendu « threaded » d'Qt Quick. C'est le comportement par défaut dans la plupart des cas. L'utilisation de la boucle de rendu « basic » n'apporte aucun avantage, car tout, y compris l'ensemble du rendu, s'effectue alors sur le thread principal.

Les applications ne disposant pas d’implémentations personnalisées de ` QQuickItem ` peuvent bénéficier des mêmes avantages en utilisant l’un des types de ` Animator `, tels que ` XAnimator ` ou ` OpacityAnimator ` de QML. En revanche, lors de la création d’éléments personnalisés, des résultats similaires peuvent être obtenus en suivant l’implémentation de l’exemple.

Projet d'exemple sur code.qt.io

Voir également Graphique de scène «Qt Quick ».

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.