系统UI和应用程序的显示帧率示例

如何使用FrameTimer显示帧率信息。

The "FrameTimer" example with two applications running.

简介

本示例展示了如何使用FrameTimer组件来显示系统UI和应用程序窗口的帧率信息。

系统UI包括左侧的一列应用程序图标和右上角的图形,显示系统UI本身的平均帧率。更确切地说,这是系统UI的最顶层窗口。如果没有应用程序正在运行,系统UI的帧率通常会停留在每秒1帧(FPS)。这是因为Qt QML应用程序窗口只有在必要时才会重新绘制。如果在这个窗口中没有发生变化,它就不会重新绘制。因此,系统UI的帧率为0 FPS。系统UI在没有应用程序运行时仍然保持在1 FPS的原因仅仅是因为FPS图表本身,该图表每秒更新一次,从而导致系统UI的重新绘制。这通常被称为观察者效应

鱼应用程序以25 FPS的速度进行动画和重新绘制,因此运行它将立即将系统UI的帧率提升到25 FPS。

        Timer {
            running: true
            repeat: true
            interval: 1000 / 25 // 25 frames per second
            onTriggered: {
                rectangle.rotation = (rectangle.rotation + 5) % 360;
            }
        }
    }

    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
}

兔应用程序以原生速度进行动画,这通常是系统能够或配置以做到的最快速度,通常是60 FPS。因此,运行此应用程序将进一步提高系统UI的FPS,达到60 FPS。

        RotationAnimation on rotation {
            from: 0; to: 360; loops: Animation.Infinite; duration: 4000
        }
    }

    MouseArea {
        id: mouseArea
        anchors.fill: parent
    }
}

示例项目 @ code.qt.io

©2019 Luxoft Sweden AB. 本文档中的文档贡献版权属于各自的所有者。本文档是在自由软件基金会发布并由《GNU自由文档许可证》(version 1.3)许可下提供的。Qt及其对应标志是芬兰The Qt公司及其在全世界各个国家/地区的商标。所有其他商标均为其各自所有者的财产。