2016-05-12 7 views

答えて

2

まず、r1をルートオブジェクトのプロパティとしてMyThing.qmlに公開する必要があります。その結果、そのスコープの外に表示されます。

MyThing.qml

main.qml

import QtQuick 2.0 
import QtQuick.Window 2.0 

Window { 
    width: 600 
    height: 400 
    visible: true 

    MyThing { 
     id: c1 
     anchors.fill: parent 
     Component.onCompleted: { 
      Qt.createQmlObject(" 
       import QtQuick 2.0 

       Rectangle { 
        color: \"salmon\" 
        anchors.fill: parent 
        anchors.margins: 10 
       } 
      ", rect) 
     } 
    } 
} 

場合、

import QtQuick 2.0 

Item { 
    property alias rect: r1 

    Rectangle { 
     id: r1 
     anchors.fill: parent 
    } 
} 

、あなたは例えば、子供の四角形を作成するためにQt.createQmlObject()を使用することができますaliasを使用していることをあなたは行うことができます子矩形コンポーネントが別のファイルに存在する場合は、Qt.createComponent()を使用します。

もっと構造化されたアプローチの場合は、ListViewのような種類のビューを使用したいと思うでしょう。ビューは子の四角形を作成するためのもので、作成する数を制御するだけです(modelプロパティなど)。

関連する問題