2017-02-15 37 views
1

我已经将MyItem.qml作为源组件加载到Loader元素上。现在我想从Loader元素中删除或卸载该页面。我试图设置源:“”& sourceComponent:“”,也sourceComponent:“undefined”。但它不起作用QML Loader ...如何卸载或删除加载到Loader元素的qml页面

+0

你能告诉我们一些代码,[在那里你尝试过(MCVE)(http://stackoverflow.com/help/mcve)? – derM

回答

0

您可以将active属性设置为false用于卸载或true(默认)用于加载。

2

您应该设置sourceComponent = nullsource = ""。 通常情况下,我用这个代码:

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

PD:我知道这是一个老问题,但我希望这回答能帮助别人。

+0

该文档明确指出,您需要指定undefined而不是null,但是,这为我解决了问题:) – Matteo

0

你没有说实际问题是什么,但是如果遇到错误,试图卸载的组件试图访问它不应该的东西,这可能是因为Loader删除了使用的项目deleteLater(),这意味着它不会立即被删除。更多信息请参阅本错误报告:

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