列出元素和javascript值

列出元素和javascript值,javascript,qt,qml,Javascript,Qt,Qml,我试图创建一个列表,并将从XMLHTTP请求中检索到的值附加到该列表中。我只测试了一个值为typeAssetProcess的文本块,它打印得很好,但当我开始尝试使用列表时,一切都开始崩溃。我做错了什么?我该如何修复它 import QtQuick 2.0 import "../controls" as Controls Item { Column { id: column width: parent.width height: parent.height } Lis

我试图创建一个列表,并将从XMLHTTP请求中检索到的值附加到该列表中。我只测试了一个值为
typeAssetProcess
的文本块,它打印得很好,但当我开始尝试使用列表时,一切都开始崩溃。我做错了什么?我该如何修复它

import QtQuick 2.0
import "../controls" as Controls
Item {

Column {
    id: column

    width: parent.width
    height: parent.height
}

ListView {
    id: listView

    width: parent.width
    height: parent.height
    model: ListModel {
        ListElement {
            name: qstr("Proccess: %1").arg(typeAssetProcess)
            colorCode: "grey"
        }

        ListElement {
            name: "Red"
            colorCode: "red"
        }

        ListElement {
            name: "Blue"
            colorCode: "blue"
        }

        ListElement {
            name: "Green"
            colorCode: "green"
        }
    }
    delegate: Item {
        x: 5
        width: 80
        height: 40
        Row {
            id: row1
            Rectangle {
                width: 40
                height: 40
                color: colorCode
            }

            Text {
                text: name
                font.bold: true
                anchors.verticalCenter: parent.verticalCenter
            }
            spacing: 10
        }
    }
}

}
此代码正在破坏:

ListElement {
    name: qstr("Proccess: %1").arg(typeAssetProcess)
    colorCode: "grey"
}

这是对该类型的已知限制,包含“角色定义集合而非属性”。这就是为什么不能对这些角色使用脚本或属性绑定(否则会出现错误
liselement:cannotusescript for property value

Qt团队经常需要改进,但据我所知,还没有实现

您可以做的一件事是动态初始化模型,而不是使用fixed
ListElement

ListView {
    id: listView

    readonly property var modelElements: [
        {
            name: qsTr("Proccess: %1").arg(typeAssetProcess),
            colorCode: "grey"
        },
        {
            name: "Red",
            colorCode: "red"
        },
        {
            name: "blue",
            colorCode: "blue"
        },
        {
            name: "Green",
            colorCode: "green"
        }]

    Component.onCompleted: {
        modelElements.forEach(function(element) {
            model.append(element)
        })
    }

    width: parent.width
    height: parent.height
    model: ListModel {}
    delegate: ...
}

您也可以选择在C++中实现自己的模型。

什么是代码> Type AsStudio过程< /C> >,提供一个