gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:58:11 34 4
gpt4 key购买 nike

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

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

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

我正在使用 QWidget::setMask() 从 CPP 代码设置掩码在 rootObject , 即 Loader屏幕。
QWidget::setMask工作正常,但屏蔽区域显示以前加载的屏幕/页面。

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

还有两个名为 Component.onDestroyed 的函数和 Component.onDestruction
当我在加载器中加载新屏幕/页面时 onDestruction正在为 Loaded 屏幕触发事件。

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

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

应该是什么原因?

最佳答案

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

关于qt - 如何从 QML 的显示中删除/移除屏幕/页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831697/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com