4

我有一个 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 中第一个 QMLFile 的属性。

但是,如果我直接在第二个文件中实例化 firstQML 文件,即不在任何元素(如 rectangle 、 item 等)内,所有属性都可以访问,为什么会这样?

4

1 回答 1

5

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

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

例子:

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 

   }

}
于 2013-08-02T16:10:37.187 回答