У меня есть такой компонент:
import QtQuick 2.15
Item {
id: root
property double value: 0.0
property int core: 1
property color progressBarColor: "black"
property color minMaxTextColor: "black"
property int fontSize: height - 6
//....
}
Теперь я подумал, что было бы неплохо сделать некоторые необходимые свойства, поскольку они должны быть объявлены при использовании компонента. Поэтому я изменил его на:
import QtQuick 2.15
Item {
id: root
required property double value
required property int core
property color progressBarColor: "black"
property color minMaxTextColor: "black"
property int fontSize: height - 6
//....
}
Компонент вызывается в репитере, как это:
SystemInformation{
id: sysinfo
}
Column{
id: displayColumn
Repeater{
model: sysinfo.coreUtilizationsInPercent.length
CoreUtilizationDisplay{
width: root.elementWidth
height: root.elementHeight
fontSize: root.fontSize
progressBarColor: "#3399FF" // blue
minMaxTextColor: "blue"
core: index + 1
value: sysinfo.coreUtilizationsInPercent[index]
}
}
}
Теперь это работает нормально, пока я не сделаю требуемые свойства. Интересно, почему это не работает?
Если я объявляю, что это необходимо, я получаю эту ошибку:
qrc:/qml/SystemInformationDisplay.qml:57: ReferenceError: index is not defined
Я сделал то же самое с аналогичными компонентами, которых нет в репитере, и там он работает нормально.
Почему?