2017-02-15 15 views
1

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

+0

Можете ли вы показать нам код, [где вы пробовали (mcve)] (http://stackoverflow.com/help/mcve)? – derM

ответ

0

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

2

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

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

PD: Я знаю, что это старый вопрос, но я надеюсь, что этот ответ может помочь кому-то.

+0

В документации четко указано, что вам нужно указать неопределенный, а не null, тем не менее, это решило проблему для меня :) – Matteo

0

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

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