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

Qt 如何从QML中的显示中删除/删除屏幕/页面?,qt,qml,qt-quick,Qt,Qml,Qt Quick,我有一个加载程序,我使用它加载多个屏幕/页面 我有大约10个QML屏幕/页面,我在加载程序中逐个加载鼠标事件 在一些屏幕上,我需要使用QWidget::setMask()函数设置透明度,以使屏幕/页面的某些部分透明并在屏幕上打孔 我使用rootObject屏幕上的Loader上的QWidget::setMask()从CPP代码设置掩码 QWidget::setMask工作正常,但遮罩区域显示先前加载的屏幕/页面 因此,我有一个问题,Loader元素是否在加载Loader中的新屏幕/页面之前,正确

我有一个
加载程序
,我使用它加载多个屏幕/页面

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

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

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

QWidget::setMask
工作正常,但遮罩区域显示先前加载的屏幕/页面

因此,我有一个问题,
Loader
元素是否在加载
Loader
中的新屏幕/页面之前,正确地从显示中删除/删除加载的组件,如文档中所述

还有两个函数名为
Component.onestroyed
Component.onDestruction

当我在加载器中加载新屏幕/页面时,将为加载的屏幕触发指令

我想在加载程序中加载新页面后,完全删除/销毁屏幕/页面。 我还尝试设置先前加载的屏幕的可见性和不透明度,但仍然能够在遮罩区域中看到先前加载的屏幕/页面

如果我设置了加载程序的
source=“
sourceComponent=undefined
,那么我也可以在加载程序中看到上一个加载的页面,它不会刷新屏幕。上一页已销毁,但未从显示中清除/删除


原因是什么?

您是否尝试过使用
QWidget::clearMask()在接收信号<代码>组件时,C++中的函数在加载QML文件中的破坏< /代码>,或在接收<代码> OnSoCube Texs//Cult> <代码>加载程序< /C> > /P>中,澄清:您使用的是一个加载器,并将其源属性更改为10个屏幕之一?我有完全相同的问题。你解决了这个问题吗?