我有一个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.onDestruction
和onDestruction
当我在Loader source = ""
事件中加载新屏幕/页面时,已加载已加载屏幕。
我想在加载器中加载新页面后,从显示中完全删除/销毁屏幕/页面。 我还尝试设置以前加载的屏幕的可见性和不透明度,但我仍然可以在蒙版区域中看到以前加载的屏幕/页面。
如果我设置了加载器的sourceComponent = undefined
和{{1}},那么我也可以在Loader中看到之前加载的页面,它不会刷新屏幕。上一页被销毁,但未从显示屏上清除/删除。
原因应该是什么?
答案 0 :(得分:0)
在加载的qml文件中接收信号QWidget::clearMask()
或在Component.onDestruction
中接收onSourceChanged
时,您是否尝试在C ++中使用Loader
函数?