2013-08-02 70 views
2

我有一個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文件,即不在像矩形,項目等任何元素內部,所有的屬性都可以訪問。

回答

3

您可以在第二個文件訪問屬性,對於:

  1. 揭露使用屬性別名到外面的世界你的父元素的ID。
  2. 現在重新定義的別名ID的ID在第二個文件
  3. 現在你可以使用別名ID名稱和與訪問它們(點)運算符

例:

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 

    } 

} 
+0

這是怎麼發生之前沒有發生:P –

+0

我也很驚訝,這種技術是實現OPs目標所必需的@SanyamGoel – johnbakers

相關問題