У меня была проблема с элементом в QML. Я хочу получить детей от предмета, но, кажется, он работает с первым элементом.
Код детали ниже:
У меня есть сетка с пользовательским компонентом списка AAA_Styles
GridView{
id: grdViewDeviceControl
clip: true
interactive: true
ScrollIndicator.vertical: ScrollIndicator{}
cellWidth: 200
cellHeight: 300
model: ListModel{}
delegate: Item {
width: grdViewDeviceControl.cellWidth
height: grdViewDeviceControl.cellHeight
AAA_Styles{
id: deviceControl
objectName: "deviceControl"
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
name: Names
subname: Subnames
}
}
Мой пользовательский AAA_RTS - это QML компонент, имеющий некоторые функции , такие как:
- function_a ()
- function_b ()
Я добавил 2 модели в модель, используя
grdViewDeviceControl.model.append ()
Я гарантирую, что в модели есть данные, которые я добавил, потому что они появились в моем дизайне, а количество значений gridview составляет 2 элемента
console.log (grdViewDeviceControl.count) // результат 2
После этого я попытался заставить каждый элемент получить доступ к функциям, которые они доступны, используя метод в сигнале onRelease кнопки:
onReleased: {
console.log("number of item: " + grdViewDeviceControl.count)
var myRTS = grdViewDeviceControl.contentItem.children[0]
console.log(myRTS)
console.log(myRTS.children[0])
myRTS = grdViewDeviceControl.contentItem.children[1]
console.log(myRTS)
console.log(myRTS.children[1])
}
Результат на консоли:
qml: номер элемента: 2
qml: QQuickItem (0x9828f60)
qml: AAA_Styles_QMLTYPE_0_QML_112 (0x9829070, "deviceControl")
qml: QQuickItem (0x5554140)
qml: undefined
С первым элементом grdViewDeviceControl.contentItem.children [0] , я получаю доступ к function_a или function_b успешно, но когда я использую вторая ошибка появилась
TypeError: Невозможно вызвать метод 'function_a' из неопределенного
Так может кто-нибудь сказать мне, почему я не прав и как это исправить?
Большое спасибо за любую помощь!