QML:如何将子对象添加到基础组件的子对象而不是组件的根对象?
QML: How to add children to a base component's child instead of the root object of the component?
我有一个名为 MyChart.qml 的基本组件,如下所示
Item {
id: root
ChartView {
id: myChartView
}
RowLayout {
id: myToolbar
}
}
}
所以它基本上是一个图表,下方有一个工具栏。我在另一个组件中继承这个组件是这样的:
MyChart {
*List of Children*
}
在这里,如何将 子列表 添加到 myToolbar 而不是 root MyChart 组件的?
每个项目都有 属性 data
,当您在另一个项目中添加一个对象时,它被用作默认值 属性。默认 属性 表示如果您未指定任何 属性 则假定为那个。
例如:States
有default property states: []
,所以你可以
States {
State{},
State{}
}
因为它们都引用默认值 属性。
因此,关于您的示例,足以公开您希望成为组件直接父亲的组件的默认 属性
MyChart.qml
Item {
id: root
default property alias data: myToolbar.data
ChartView {
id: myChartView
}
RowLayout {
id: myToolbar
}
}
现在您使用的任何子组件都将直接添加到行布局中
MyChart {
Rectangle { width: 100; height: 100; color:"red"}
Rectangle { width: 100; height: 100; color:"skyblue"}
}
我有一个名为 MyChart.qml 的基本组件,如下所示
Item {
id: root
ChartView {
id: myChartView
}
RowLayout {
id: myToolbar
}
}
}
所以它基本上是一个图表,下方有一个工具栏。我在另一个组件中继承这个组件是这样的:
MyChart {
*List of Children*
}
在这里,如何将 子列表 添加到 myToolbar 而不是 root MyChart 组件的?
每个项目都有 属性 data
,当您在另一个项目中添加一个对象时,它被用作默认值 属性。默认 属性 表示如果您未指定任何 属性 则假定为那个。
例如:States
有default property states: []
,所以你可以
States {
State{},
State{}
}
因为它们都引用默认值 属性。 因此,关于您的示例,足以公开您希望成为组件直接父亲的组件的默认 属性
MyChart.qml
Item {
id: root
default property alias data: myToolbar.data
ChartView {
id: myChartView
}
RowLayout {
id: myToolbar
}
}
现在您使用的任何子组件都将直接添加到行布局中
MyChart {
Rectangle { width: 100; height: 100; color:"red"}
Rectangle { width: 100; height: 100; color:"skyblue"}
}