Создайте компонент как элемент в экземпляре объекта

У меня есть компонент QML с именем MyComponent, и у меня есть его экземпляр следующим образом:

MyComponent {
    id: rightComponent

    property Component settingsScreen: SettingsScreen {}

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

SettingsScreen — еще один компонент, который у меня есть. Проблема в том, что rightComponent не похоже на родителя settingsScreen. Я получаю правильный результат, когда встраиваю как:

MyComponent {
    id: rightComponent

    SettingsScreen {}
}

Это хорошо, и все выложено правильно.


person Luca    schedule 04.03.2016    source источник


Ответы (1)


Вы можете решить следующим образом:

MyComponent {
    id: rightComponent

    SettingsScreen {
        id: settingsScreen
    }

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

Нет необходимости определять новое свойство, как вы это сделали.

person skypjack    schedule 04.03.2016
comment
Это работает, но макет отличается по сравнению с удалением компонента StackView по какой-то причине.... - person Luca; 05.03.2016
comment
Хорошо, проигнорируйте мой последний комментарий. Это было что-то совершенно другое, и ваш ответ решил мои проблемы. Так что спасибо :) - person Luca; 05.03.2016