Я загрузил MyItem.qml в качестве исходного компонента в элемент Loader. Теперь я хочу удалить или выгрузить эту страницу из элемента Loader. Я попытался установить источник: «" & sourceComponent: "", также sourceComponent: "undefined". Но это не сработалоQML Loader ... Как выгрузить или удалить qml-страницу, загруженную на элемент Loader
ответ
Вы можете просто установить active
на false
для разгрузки или true
(по умолчанию) для загрузки.
Вы должны установить sourceComponent = null
или source = ""
. Обычно я использую этот код:
Loader{
id: loader
function show(component) {
sourceComponent = component;
}
function hide(){
sourceComponent = null;
}
}
PD: Я знаю, что это старый вопрос, но я надеюсь, что этот ответ может помочь кому-то.
В документации четко указано, что вам нужно указать неопределенный, а не null, тем не менее, это решило проблему для меня :) – Matteo
Вы не сказали, в чем была проблема, но если вы столкнулись с ошибками, когда компонент, который вы пытаетесь выгрузить, пытается получить доступ к вещам, которые он не должен делать, это может быть связано с тем, что Loader удаляет элемент, используя deleteLater()
, что означает, что он не удаляется мгновенно. См отчет об ошибке для получения дополнительной информации:
Можете ли вы показать нам код, [где вы пробовали (mcve)] (http://stackoverflow.com/help/mcve)? – derM