2011-10-20 74 views
5

我有一個Loader使用我加載多個屏幕/頁面。如何從QML中的顯示中刪除/刪除屏幕/頁面?

我有大約10個QML屏幕/頁面,我在加載程序中一個接一個地在鼠標事件中加載。

在一些屏幕上,我需要使用QWidget::setMask()函數設置透明度,以使屏幕/頁面的某些部分變得透明,並打孔屏幕。

我正在使用QWidget::setMask()rootObject,這是Loader屏幕從CPP代碼設置掩碼。

QWidget::setMask正常工作,但屏蔽區域顯示以前加載的屏幕/頁面。

所以我的問題,是Loader元素正確刪除/在Loader加載新的屏幕/頁,在文件http://doc.qt.nokia.com/4.7-snapshot/qml-loader.html之前提到的去除顯示加載的組件。

也有兩個名爲Component.onDestroyedComponent.onDestruction

當我在裝載機onDestruction事件加載新的屏幕/頁面會因此被炒魷魚的加載屏幕功能。

一旦我們在加載程序中加載新頁面,我想徹底刪除/銷燬屏幕/頁面。 我也嘗試設置以前加載的屏幕的可見性和不透明度,但仍然能夠看到掩蓋區域中以前加載的屏幕/頁面。

如果我設置了加載程序的source = ""sourceComponent = undefined那麼我也可以在Loader中看到之前加載的頁面,它不刷新屏幕。上一頁被破壞,但不會從顯示屏上清除/刪除。

應該是什麼原因?

+0

只是爲了闡明:你正在使用一個單一的Loader,並將其源屬性更改爲你的10個屏幕之一? –

+0

我有完全相同的問題。你有沒有設法解決這個問題? – MokaT

回答

0

您是否曾嘗試在C++中使用QWidget::clearMask()函數接收信號Component.onDestruction時在加載qml文件中或者當接收到onSourceChangedLoader