【发布时间】:2016-07-19 06:13:24
【问题描述】:
我有一个基于 QML 的 Qt UI 应用程序,它可以播放音频。该应用程序是使用 Qt 4.x 开发的,并且在所有 QML 文件中都有 import QtQuick 1.0 语句。我试图通过从QDeclarativeItem 类派生并实现paint(QPainter *) 函数来计算应用程序的FPS。 FPS 约为 60。
后来,我移植了同一个应用程序以使用QtQuick 2.0。它在 QML 文件中有 import QtQuick 2.0 语句以及使用 QtQuick 2.0 运行应用程序所需的一些其他更改。同样,我尝试通过从 QQuickPaintedItem 派生并实现 paint(QPainter *painter) 函数来计算应用程序的 FPS。计算出来的 FPS 又是 60 左右。
我预计基于 QtQuick 1.0 的第一个应用程序与第二个应用程序相比具有更低的 FPS。但是,事实并非如此。这种行为是预期的吗?我的应用程序中没有任何 OpenGL 调用。该应用程序只有普通的 QML 组件,例如 Rectangle, Item, Image。
我的FPS计算方法是基于另一个线程Show FPS in QML的解决方案
【问题讨论】:
-
60 可能是您显示器的刷新率。在视频驱动设置中关闭垂直同步,也许它会关闭应用程序的同步。
-
@Velkan 不。我没有得到一个常数 60。每当我在应用程序的多个屏幕之间导航时,该值的范围从 40 到 60。顺便说一句,我如何在视频驱动程序中打开 vsync?
标签: qt gpu qtquick2 frame-rate qt-quick