5

我有一个Loader使用它来加载多个屏幕/页面。

我有大约 10 个 QML 屏幕/页面,我在加载器中一一加载鼠标事件。

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

我正在使用屏幕QWidget::setMask()上的rootObjectCPP代码设置掩码。Loader

QWidget::setMask工作正常,但蒙版区域显示以前加载的屏幕/页面。

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

还有两个函数命名Component.onDestroyedComponent.onDestruction

当我在 LoaderonDestruction事件中加载新屏幕/页面时,会为 Loaded 屏幕触发。

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

如果我设置了加载器source = ""sourceComponent = undefined然后我也可以在加载器中看到之前加载的页面,它不会刷新屏幕。前一页被破坏,但不会从显示中清除/移除。

应该是什么原因?

4

1 回答 1

0

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

于 2015-08-01T23:14:36.677 回答