2017-02-15 324 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