1

从我更改 QML Loader 的sourcesourceComponent属性到视觉项目实际出现在屏幕上(被绘制)的那一刻,我如何测量经过的时间?

Loader {
    id: _loader
    source: "MyVisualItem.qml"
}

我已经尝试使用 statusChanged 和 Component.onCompleted 信号,但都不够准确 - 很容易看出实际时间要长得多。

4

2 回答 2

1

根据文档中的图表frameSwapped()您最好的选择是:

在此处输入图像描述

您需要在设置source/之前sourceComponent或之后直接连接到该信号。第一次调用它时,您可以检查在屏幕上渲染它所花费的时间。之后不要忘记断开它。:)

于 2018-12-16T22:24:20.310 回答
1

QML profiler 应该解决这个问题(例如,见这里),

加载器项本身可以实现源更改和加​​载之间的纯时间测量:

Loader.Ready - the QML source has been loaded
Loader.Loading - the QML source is currently being loaded

加载信号

This signal is emitted when the status becomes Loader.Ready, or on successful initial load.    
The corresponding handler is onLoaded.

所以测量源更改发生和 onLoaded 调用之间的时间

于 2018-12-16T22:43:59.650 回答