这是我在main.qml文件中处理的情况的简化:
Component {
id: component1
property string stringIneedToPass: "Hello"
Text { text: stringIneedToPass }
}
Component {
id: component2
Rectangle {
id: myRectangle
property string stringIneedToReceive = component1.stringIneedToPass; //this doesn't work
}
}
显然我的情况更复杂。但最后我只需要了解应该如何进行这种转移!
谢谢大家!
答案 0 :(得分:1)
首先,Component
元素不能包含属性。 Component
可以从文件加载,也可以以声明方式定义,在后一种情况下,它们只能包含一个根元素和一个id。
第二 - 你不能在元素的主体中进行赋值,只能在绑定中进行赋值。
第三 - 您不能从外部引用组件内部元素内定义的属性,因为该对象在实例化组件之前不存在。这些对象只能从内部引用。
除此之外,它将按预期工作,如果您可以引用它,您可以绑定或将其分配给属性,具体取决于您的需要。
所以你可以简单地将字符串属性设为external:
property string stringIneedToPass: "Hello"
Component {
id: component1
Text {
text: stringIneedToPass
}
}
Component {
id: component2
Rectangle {
id: myRectangle
property string stringIneedToReceive: stringIneedToPass
}
}