如何在QML中从显示中删除/删除屏幕/页面?

时间:2011-10-20 05:55:13

标签: qt qml qt-quick

我有一个Loader用于加载多个屏幕/页面。

我有大约10个QML屏幕/页面,我在装载程序中逐个加载鼠标事件。

在某些屏幕上,我需要使用QWidget::setMask()功能设置透明度,使屏幕/页面的某些部分变得透明,并在屏幕上打孔。

我正在使用QWidget::setMask() rootObject上的Loader从CPP代码设置掩码,即QWidget::setMask屏幕。

Loader工作正常,但屏蔽区域显示先前加载的屏幕/页面。

所以我有一个问题,Loader元素是否在Component.onDestroyed中加载新屏幕/页面之前正确地从显示中删除/删除了已加载的组件,如文档http://doc.qt.nokia.com/4.7-snapshot/qml-loader.html中所述

还有两个名为Component.onDestructiononDestruction

的函数

当我在Loader source = ""事件中加载新屏幕/页面时,已加载已加载屏幕。

我想在加载器中加载新页面后,从显示中完全删除/销毁屏幕/页面。 我还尝试设置以前加载的屏幕的可见性和不透明度,但我仍然可以在蒙版区域中看到以前加载的屏幕/页面。

如果我设置了加载器的sourceComponent = undefined和{{1}},那么我也可以在Loader中看到之前加载的页面,它不会刷新屏幕。上一页被销毁,但未从显示屏上清除/删除。

原因应该是什么?

1 个答案:

答案 0 :(得分:0)

在加载的qml文件中接收信号QWidget::clearMask()或在Component.onDestruction中接收onSourceChanged时,您是否尝试在C ++中使用Loader函数?