我一直在試圖在工作中追蹤Qt 4.8.4(QtQuick 1.1)應用程序中的一些綁定循環。我做了一些實驗,發現在QtCreator 3.5.1由QML分析儀檢測到裝訂圈下面簡單的例子結果:頂級qml文件中的Repeater元素導致QtQuick 1.1(QtQuick 1.1)中的綁定循環(QtCreator 3.5.1)
import QtQuick 1.1
Rectangle {
Repeater {
model: 1000
Text { text: "I'm item " + index }
}
}
如果我移動直放站元素出來叫Multiple.qml另一個QML文件,其中包含:
import QtQuick 1.1
Repeater {
model: 1000
Text { text: "I'm item " + index }
}
和改變我的main.qml到下面,結合環消失:
import QtQuick 1.1
Rectangle {
Multiple {}
}
的1000次迭代是不是一個現實的例子。我用它來擴展QML Profiler中的一些時間增量。任何數量的迭代> = 1都會發生此問題。
Analyzer事件輸出還聲稱已爲最高main.qml 1001次(Repeater迭代次數+1)調用了「create」,但是使用massif似乎表明在檢測到綁定循環時內存使用率不會增加。根據分析儀的輸出,它看起來好像消耗了更多的時間。在我的機器上,main.qml create是71 ms vs 124 ms。
我做了一些進一步的實驗。如果我將Repeater元素放入另一個QML文件中,並使用Qt.creatComponent(從主qml文件中的「MyComp.qml」和<component>.createObject()
)實例化它,我也會得到一個綁定循環,如果MyComp.qml使用Multiple {},環消失
我也嘗試過的Qt 5.5.0的最新版本 - 。?同樣的問題
這是預期的行爲,它可以在QtCreator本身就是一個錯誤我不得不通過QtCreator搜索JIRA找不到任何相關問題