Qml 在对象实例中创建组件作为成员

Qml 在对象实例中创建组件作为成员,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我有一个名为MyComponent的QML组件,我有一个它的实例,如下所示: MyComponent { id: rightComponent property Component settingsScreen: SettingsScreen {} StackView { id: settingsStack anchors.fill: parent initialItem: rightComponent.settings

我有一个名为MyComponent的QML组件,我有一个它的实例,如下所示:

MyComponent {
    id: rightComponent

    property Component settingsScreen: SettingsScreen {}

    StackView {
        id: settingsStack
        anchors.fill: parent
        initialItem: rightComponent.settingsScreen
    }
}
设置屏幕
是我拥有的另一个组件。问题在于,
rightComponent
似乎不是
settingsScreen
的父项。当我嵌入为时,我得到了正确的结果:

MyComponent {
    id: rightComponent

    SettingsScreen {}
}

这很好,所有内容都安排正确。

您可以按如下方式解决:

MyComponent {
    id: rightComponent

    SettingsScreen {
        id: settingsScreen
    }

    StackView {
        id: settingsStack
        anchors.fill: parent
        initialItem: settingsScreen
    }
}

无需像您那样定义新属性。

这可以工作,但由于某种原因,与删除StackView组件相比,布局完全不同……好的,忽略我的最后一条评论。那完全不同,你的回答解决了我的问题。所以谢谢:)