QML:将项目注入项目层次结构
QML: Injecting Item into hierarchy of Items
我有一个可重复使用的物品,看起来像这样:
Reusable.qml:
Flickable {
CustomCppComponent {
id: customComponent
}
}
现在我想用一些额外的实例化它 child:
Main.qml:
Item {
Reusable {
Rectangle {
id: rect
anchors.fill: parent
}
}
}
但我希望将 Rectangle
作为 CustomComponent
的 child 放置,因此等同于:
Main.qml:
Item {
Flickable {
CustomCppComponent {
id: customComponent
Rectangle {
id: rect
anchors.fill: parent
}
}
}
}
我该怎么做?
最简单的方法是使用 default property
。
Reusable.qml:
Flickable {
default property alias innerContents: customComponent.data
CustomCppComponent {
id: customComponent
}
}
由于 innerContents
是默认值 属性,您添加到 Reusable
实例的任何子对象都将添加到 innerContents
,它指向 customComponent 的 data
属性.
这当然假设 CustomCppComponent
是一个视觉项目,您的问题没有定义它。
我有一个可重复使用的物品,看起来像这样:
Reusable.qml:
Flickable {
CustomCppComponent {
id: customComponent
}
}
现在我想用一些额外的实例化它 child:
Main.qml:
Item {
Reusable {
Rectangle {
id: rect
anchors.fill: parent
}
}
}
但我希望将 Rectangle
作为 CustomComponent
的 child 放置,因此等同于:
Main.qml:
Item {
Flickable {
CustomCppComponent {
id: customComponent
Rectangle {
id: rect
anchors.fill: parent
}
}
}
}
我该怎么做?
最简单的方法是使用 default property
。
Reusable.qml:
Flickable {
default property alias innerContents: customComponent.data
CustomCppComponent {
id: customComponent
}
}
由于 innerContents
是默认值 属性,您添加到 Reusable
实例的任何子对象都将添加到 innerContents
,它指向 customComponent 的 data
属性.
这当然假设 CustomCppComponent
是一个视觉项目,您的问题没有定义它。