Предположим, у меня есть TestComponent.qml, который использует псевдоним для дочерних элементов. Файл компонента выглядит следующим образом:Как динамически добавлять дочерние элементы в элемент 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++.