Qt Quick Ejemplos - Tasa de actualización variable de elementos

Un ejemplo de Qt Quick muestra cómo configurar una frecuencia de actualización variable para partes específicas de la interfaz de usuario.

Este ejemplo demuestra el uso de la propiedad live de un Item Layers para obtener una frecuencia de actualización variable e independiente para elementos Quick. Esto puede proporcionar un aumento significativo en el rendimiento si partes específicas de una interfaz de usuario no necesitan ser re-renderizadas cada fotograma, pero todavía requieren actualizaciones internas. Dibujar partes que son estáticas la mayor parte del tiempo o animaciones que no tienen que ejecutarse suavemente en todo momento es un desperdicio de recursos. Esta propiedad da al usuario el control sobre cuándo se dibuja el elemento.

Nota: El uso de Item Layers puede implicar una penalización en el rendimiento, dependiendo del tamaño del subárbol de elementos por capas, debido al uso de objetivos de renderizado separados (texturas), que luego se mezclan en el pase de renderizado principal. Los diseñadores de aplicaciones deben evaluar siempre el impacto para asegurarse de que las ventajas de utilizar capas superan a los posibles inconvenientes.

El ejemplo utiliza FrameAnimation para controlar la frecuencia con la que se renderiza el elemento. Resulta útil cuando sólo se desea, por ejemplo, cada dos fotogramas. Usar algo como un temporizador u otra mecánica para alternar la bandera también es válido.

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

En el fragmento anterior, la propiedad fps sólo está ahí para fines de demostración visual.

El elemento requiere que layer.enabled sea true, y entonces el elemento será renderizado dependiendo del estado de layer.live como se muestra en el siguiente snippet.

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

Usando el operador modulo y un deslizador para establecer el valor, podemos cambiar dinámicamente la frecuencia con la que se muestra el logo de Qt.

Proyecto de ejemplo @ 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.