无法访问另一个QML中的一个QML的属性

时间:2013-08-02 15:36:22

标签: qt qml

我有一个QML文件

QMLFile1.qml

Rectangle{   

    id: LogicFile
    property int  characters
    property bool checked

}

在第二个QML文件 QMLFile2.qml

如果我尝试在第二个文件中实例化第一个文件,就像这样

Rectangle{

   QMLFile1{

         // unable to access the 
         //properties here id: LogicFile
         // property int  characters
         //property bool checked
   }

}

为什么我无法在第二个内部访问第一个QMLFile的属性。

但是,如果我直接在第二个文件中实例化第一个QML文件,即不在像矩形,项目等任何元素内,所有属性都可以访问,为什么会这样?

1 个答案:

答案 0 :(得分:5)

您可以访问第二个文件中的属性:

  1. 使用属性别名将您的父元素的ID公开给外部世界。
  2. 现在使用第二个文件中的别名id重新定义id
  3. 现在,您可以使用别名ID名称和。(点)运算符
  4. 来访问它们

    示例:

    QMLFile1.qml

    Rectangle{
        id: LogicFile
        property alias rectId:LogicFile // exposing id to outside files
        property int  characters
        property bool checked
    }
    

    QMLFile2.qml

    Rectangle{
    
       QMLFile1{
    
               id:rectId       
    
              //Now you can access them like rectId.characters/rectId.checked
              rectId.characters = 10 
    
       }
    
    }