QML Listview в QMLProfiler, дважды сообщающий о создании делегата - PullRequest
0 голосов
/ 18 июня 2020

Вот простой ListView всего с 10 элементами. Когда я запускал QMLProfiler для этого приложения, статистика показывает, что количество вызовов, сделанных для создания делегата, было дважды. Может ли кто-нибудь объяснить такое поведение?

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    ListView{
        anchors.fill: parent
        model: 10
        delegate: Rectangle{
            width: parent.width
            height: 60
            Text {
                id: name
                text: qsTr("Item is ") + index
            }
        }
    }
}

enter image description here

1 Ответ

1 голос
/ 18 июня 2020

Ответ можно найти в отчете об ошибке Qt. QML Profiler показывает двойное количество вызовов Create делегата Repeater , в котором говорится следующее:

Создание объекта обычно происходит в два этапа , которые учитываются отдельно в профилировщике.

Создание каждого объекта включает в себя одну фазу создания и один обратный вызов componentComplete (). Они отслеживаются отдельно.

...