web-dev-qa-db-ja.com

Javascriptを使用してQML ListModelの要素を追加する方法は?

ネストされたListModelを1つ作成しました。

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

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

Javascriptを使用して内部リストに要素を追加するにはどうすればよいですか?つまり、subAlphaモデルに要素を追加するにはどうすればよいですか?

1
A.P.

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
Robert Schroll

有効なJSON/Javascriptにするには

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

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

そして、subAlphaに追加します

a.ListElement.subAlpha.Push({ alphaName: "C" })
0
Simon1901