无法将QQuickText分配给QString

时间:2013-04-08 23:34:27

标签: javascript qml qstring

我试图在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

有什么方法吗?

1 个答案:

答案 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可以解决您的问题。