子項目のエイリアスを使用する TestComponent.qml があるとします。コンポーネント ファイルは次のようになります。
TestComponent.qml
import QtQuick 2.5
Column {
default property alias children: cont.children;
Text {
text: "header"
}
Column {
id: cont
}
Text {
text: "footer"
}
}
次に、コンポーネントをインスタンス化するメイン ファイルを作成します。静的コンポーネントのインスタンス化を介して子コンポーネント Text を追加すると、期待どおりにヘッダーとフッターの間に表示されます。ただし、子コンポーネントを動的に追加すると、子のエイリアスは無視され、フッターの後に子が追加されます。ファイルは次のようになります。
main.qml
import QtQuick 2.5
import QtQuick.Controls 1.4
ApplicationWindow {
visible: true
width: 200
height: 200
TestComponent {
id: t1
Text {
text: "body"
}
}
Component {
id: txt
Text {
text: "body1"
}
}
Component.onCompleted: {
txt.createObject(t1)
}
}
出力は次のとおりです。
header
body
footer
body1
動的コンポーネントの作成に対してエイリアスも透過的になるようにする方法はありますか? C++ を使用しないのが理想的です。