Qt Quick 示例 - 项目变量刷新率

一个 Qt Quick 示例演示了如何设置 UI 特定部分的变量刷新率。

此示例展示了如何使用 Item Layers 的 live 属性来为 Quick 项目获取变量和独立的刷新率。如果 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 Logo 的渲染频率。

示例项目 @ code.qt.io

© 2024 The Qt Company Ltd. 本文档贡献的版权归其各自所有者。本提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可版本 1.3 的条款许可的。Qt 和相应的标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。