QML Loader ... Как выгрузить или удалить страницу qml, загруженную в элемент Loader

Я загрузил MyItem.qml в качестве исходного компонента на элемент Loader. Теперь я хочу удалить или выгрузить эту страницу из элемента Loader. Я попытался установить source: "" & sourceComponent: "", также sourceComponent: "undefined". Но это не сработало

4 ответа

Вы должны установить sourceComponent = undefined или же source = "", Обычно я использую этот код:

Loader{
    id: loader
    function show(component) {
        sourceComponent = component;
    }
    function hide(){
        sourceComponent = undefined;
    }
}

Вы можете просто установить active собственность на false для разгрузки или true (по умолчанию) для загрузки.

Например есть такой загрузчик:

      Loader {
    id: loaderLanguage
}

в неактивный:

      loaderLanguage.active= false

Вы не сказали, какова была настоящая проблема, но в случае, если вы столкнулись с ошибками, когда компонент, который вы пытаетесь выгрузить, пытается получить доступ к вещам, которых он не должен, это может быть потому, что Loader удаляет элемент с deleteLater(), что означает, что он не будет удален сразу. Смотрите этот отчет об ошибке для получения дополнительной информации:

https://bugreports.qt.io/browse/QTBUG-60344

Другие вопросы по тегам