列出元素和javascript值
我试图创建一个列表,并将从XMLHTTP请求中检索到的值附加到该列表中。我只测试了一个值为列出元素和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
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团队经常需要改进,但据我所知,还没有实现
您可以做的一件事是动态初始化模型,而不是使用fixedListElement
:
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> >,提供一个