Qt 关于调用嵌套变量的QML问题

Qt 关于调用嵌套变量的QML问题,qt,variables,nested,qml,Qt,Variables,Nested,Qml,所以我想从一个对象中调用一个变量,在一个对象的下面几层。我找到的唯一成功方法如下: //object doing the calling Text { text: lv1.lv1Out } //object containing the variable I want Rectangle { id: lv1 property var lv1Out: lv2Out Rectangle { id: lv2 property var lv2Out: vari

所以我想从一个对象中调用一个变量,在一个对象的下面几层。我找到的唯一成功方法如下:

//object doing the calling
Text { 
  text: lv1.lv1Out
} 

//object containing the variable I want
Rectangle {
  id: lv1
  property var lv1Out: lv2Out
  
  Rectangle {
    id: lv2
    property var lv2Out: variableIWant
    
    Rectangle {
      id: lv3
      property var variableIWant: 1
    }
  }
}

基本上,我必须在每一个级别定义变量,并在包含对象树之外定义我想要的变量。有没有更优雅的方法?打以下电话对我不起作用:

Text { 
  text: lv1.lv2.lv3.variableIWant;
} 

为嵌套定义调用a.b.c将不起作用,因为子对象包含在父对象中,但不作为变量/属性。对于这种类型的检查,您需要使用属性children[i]——在您的例子中是children的子级和循环子级。 但在您的情况下,是不必要的。您有按id命名的子对象,因此可以执行以下操作:

Text { 
  text: lv3.variableIWant;
} 

为嵌套定义调用a.b.c将不起作用,因为子对象包含在父对象中,但不作为变量/属性。对于这种类型的检查,您需要使用属性children[i]——在您的例子中是children的子级和循环子级。 但在您的情况下,是不必要的。您有按id命名的子对象,因此可以执行以下操作:

Text { 
  text: lv3.variableIWant;
} 

请提供一个我认为您应该能够直接使用
text:variableIWant
,只要它们在同一个文件中并且没有其他命名冲突。一个更完整的示例会有所帮助。通过使用
lv1.lv2.lv3.variableIWant
,您想做什么?实际上,在项目
lv1
中没有属性
lv2
,因此表示法
lv1.lv2
毫无意义。只需使用
lv3.variableIWant
,因为
lv3
不是动态项,可以直接访问。查看文档中的更多信息。如果您正在谈论不同的qml文件,请在矩形上定义一个别名:
属性别名nestedVarIWant:lv3.variableIWant
并从文本中使用它:
Text:lv1.nestedVarIWant
请提供一个我认为您应该可以直接使用
Text:variableIWant
,只要它们在同一个文件中,并且没有其他命名冲突。一个更完整的示例会有所帮助。通过使用
lv1.lv2.lv3.variableIWant
,您想做什么?实际上,在项目
lv1
中没有属性
lv2
,因此表示法
lv1.lv2
毫无意义。只需使用
lv3.variableIWant
,因为
lv3
不是动态项,可以直接访问。查看文档中的更多信息。如果您正在谈论不同的qml文件,请在矩形上定义别名:
属性别名nestedVarIWant:lv3.variableIWant
,并从文本中使用该别名:
Text:lv1.nestedVarIWant