Qt Quick 예시 - 항목 가변 새로 고침 빈도

Qt Quick 예제에서는 UI의 특정 부분에 대해 가변 새로 고침 빈도를 설정하는 방법을 보여줍니다.

이 예시에서는 Item Layers 의 라이브 프로퍼티를 사용하여 빠른 항목에 대해 가변적이고 독립적인 새로 고침 빈도를 설정하는 방법을 보여줍니다. 이렇게 하면 UI의 특정 부분을 매 프레임마다 다시 렌더링할 필요는 없지만 내부 업데이트가 필요한 경우 성능을 크게 향상시킬 수 있습니다. 대부분의 시간 동안 정적인 부분이나 항상 원활하게 실행될 필요가 없는 애니메이션을 그리는 것은 리소스 낭비입니다. 이 속성을 사용하면 사용자가 항목이 그려지는 시기를 제어할 수 있습니다.

참고: Item Layers 을 사용하면 레이어된 아이템 서브트리의 크기에 따라 별도의 렌더 타깃(텍스처)을 사용한 다음 메인 렌더 패스에서 함께 블렌딩하기 때문에 성능 저하가 발생할 수 있습니다. 애플리케이션 디자이너는 항상 영향을 평가하여 레이어 사용의 이점이 잠재적인 단점보다 더 큰지 확인해야 합니다.

이 예에서는 FrameAnimation 을 사용하여 항목의 렌더링 빈도를 제어합니다. 예를 들어 매 초 프레임마다만 렌더링하려는 경우에 유용합니다. 타이머나 기타 메커니즘을 사용하여 플래그를 전환하는 것도 유효합니다.

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

위의 코드 조각에서 fps 프로퍼티는 시각적 데모용으로만 사용됩니다.

이 항목은 layer.enabled가 true여야 하며, 아래 스니펫에 표시된 것처럼 layer.live의 상태에 따라 항목이 렌더링됩니다.

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

모듈로 연산자와 슬라이더를 사용하여 값을 설정하면 Qt 로고가 렌더링되는 빈도를 동적으로 변경할 수 있습니다.

예제 프로젝트 @ code.qt.io

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