我试图在qml-javascript中动态创建对象。创建对象的函数是:
function createSpriteObjects(xPos,yPos,cnt,imgsrc,jsonObject) {
var title;
title = jsonObject.matches[cnt].recipeName;
var component = Qt.createComponent("FlickItem.qml");
component.createObject(wall.contentItem, {"color":"white", "x":xPos,"y":yPos,"src":imgsrc,"opacity":1,"title":title});
}
接收文件(FlickItem.qml)有一个属性字符串标题,稍后将其分配给Text项的文本字段:
import QtQuick 2.0
Rectangle {
id: name
opacity: 0
property string title: ""
width:100
height:100
color:"white"
property string src: ""
Image {
id:recipeimages
source: src
width:240
height:160
}
Text {
id: title
anchors.bottom: recipeimages.bottom
anchors.horizontalCenter: recipeimages.horizontalCenter
anchors.bottomMargin: 5
color: "white"
font.pixelSize: 24
text:title
}
返回以下错误:
无法将QQuickText指定给QString
有什么方法吗?
答案 0 :(得分:9)
Rectangle {
id: name
//...
property string title: "" <------ title
//...
}
Text {
//...
id: title <----- title
//...
text:title <---- which title ?!?!?!
}
问题是你有一个property
绑定到 title 标识符,一个id
绑定到 title 标识符。根据您的输出,您可能会尝试从id
(而不是property
)分配文字。
更改id
组件的Text
可以解决您的问题。