Qt Quick Exemples - Taux de rafraîchissement variable par élément

Un exemple d’ Qt Quick montre comment configurer un taux de rafraîchissement variable pour certaines parties spécifiques de l’interface utilisateur.

Logo Qt pivoté avec compteur de FPS et curseur de réglage de la fréquence d'images

Cet exemple illustre l'utilisation de la propriété « live » d'un composant « Item Layers » pour obtenir un taux de rafraîchissement variable et indépendant pour les éléments « Quick ». Cela peut considérablement améliorer les performances si certaines parties d'une interface utilisateur n'ont pas besoin d'être réaffichées à chaque image, mais nécessitent tout de même des mises à jour internes. Le rendu d’éléments qui restent statiques la plupart du temps ou d’animations qui ne doivent pas nécessairement s’exécuter de manière fluide en permanence constitue un gaspillage de ressources. Cette propriété permet à l’utilisateur de contrôler le moment où l’élément est affiché.

Remarque : l’utilisation de « Item Layers » peut entraîner une perte de performances, en fonction de la taille de la sous-arborescence de l’élément en couches, en raison de l’utilisation de cibles de rendu distinctes (textures), qui sont ensuite fusionnées lors du passage de rendu principal. Les concepteurs d’applications doivent toujours évaluer l’impact afin de s’assurer que les avantages liés à l’utilisation des couches l’emportent sur les inconvénients potentiels.

L’exemple utilise ` FrameAnimation ` pour contrôler la fréquence de rendu de l’élément. Cela s’avère utile lorsque vous souhaitez, par exemple, ne l’afficher qu’une image sur deux. L’utilisation d’un minuteur ou d’un autre mécanisme pour activer ou désactiver cet indicateur est également valable.

FrameAnimation {
  id: frameAnimation
  property real fps: smoothFrameTime > 0 ? (1.0 / smoothFrameTime) : 0
  running: true
}

Dans l’extrait de code ci-dessus, la propriété `fps` n’est présente qu’à des fins de démonstration visuelle.

L’élément nécessite que `layer.enabled` soit défini sur `true` ; il sera alors affiché en fonction de l’état de `layer.live`, comme illustré dans l’extrait de code ci-dessous.

Item {
    id: qt_logo
    width: 230
    height: 230
    anchors.fill: parent
    anchors.topMargin: 125
    layer.enabled: true
    layer.live: slider.value > 0 && frameAnimation.currentFrame % slider.value == 0

En utilisant l’opérateur modulo et un curseur pour définir la valeur, nous pouvons modifier dynamiquement la fréquence d’affichage du logo Qt.

Exemple de projet sur code.qt.io

© 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.