Как добавить элемент для QML ListModel с помощью JavaScript?

Я создал тот, вложенный ListModel.

ListModel {
    id: mainModel
    ListElement {
        mainName: "Alphabet"

        subAlpha: [
            ListElement { alphaName: "A" },
            ListElement { alphaName: "B" }
        ]
    } } 

Как я могу добавить элемент во внутреннем списке с помощью JavaScript? Другими словами, как я могу добавить элемент к подальфа-модели?

2
задан 29 December 2015 в 12:42

2 ответа

Используйте subAlpha.append() . Этот метод берет объект JavaScript в качестве аргумента, который он использует для создания нового ListElement с теми ключами и значениями.

А рабочий пример:

import QtQuick 2.0

ListView {
    width: 200
    height: 200

    ListModel {
        id: mainModel
        ListElement {
            name: "Alphabet"
            subAlpha: [
                ListElement {
                    alphaName: "A"
                },
                ListElement {
                    alphaName: "B"
                }
            ]
        }
    }

    model: mainModel
    delegate: Column {
        Text { text: name }
        Row {
            Repeater {
                model: subAlpha
                Text { text: alphaName }
            }
        }
    }

    Component.onCompleted: {
        mainModel.get(0).subAlpha.append({alphaName: "C"})
    }
}
3
ответ дан 2 December 2019 в 02:54

Сделать это допустимым JSON/Javascript

a = {
  id: mainModel,
  ListElement: {
    mainName: "Alphabet",

    subAlpha: [
       { alphaName: "A" },
       { alphaName: "B" }
    ]
  } 
} 

и затем добавить к подальфе

a.ListElement.subAlpha.push({ alphaName: "C" })
0
ответ дан 2 December 2019 в 02:54

Другие вопросы по тегам:

Похожие вопросы: