欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

QML,Loarder异步加载报错:Object destroyed during incubation

程序员文章站 2022-07-02 14:10:35
QML,Loarder异步加载报错:Object destroyed during incubation动态加载,控件内容较多Loader动态加载,控件内容较多这个时候会出现界面卡顿的问题,为了解决这个问题,QML提供了两种异步加载的方法:1、使用Loader。2、使用JavaScript:Qt.createComponent() / Qt.createQmlObject()。Loader这里主要讲loader的方式进行异步加载。使用loader方式加载的好处是可以先占个位,需要的时候使用so...

QML,Loarder异步加载报错:Object destroyed during incubation

动态加载,控件内容较多

这个时候会出现界面卡顿的问题,为了解决这个问题,QML提供了两种异步加载的方法:
1、使用Loader。
2、使用JavaScript:Qt.createComponent() / Qt.createQmlObject()。

Loader

这里主要讲loader的方式进行异步加载。使用loader方式加载的好处是可以先占个位,需要的时候使用source / sourceComponent进行实际内容的更换/加载。但这个时候,异步小心就会出现标题中的报错。报错的原因正如报错中所说:孵化期间被摧毁。

报错代码
QML,Loarder异步加载报错:Object destroyed during incubation
这里的Button是自定义的Button,出错的地方也就在这里,下面是自定义的Button。
QML,Loarder异步加载报错:Object destroyed during incubation
上图,我们可以看到contentItem和background后面跟着都是一个对象,这里是我们自定义的样式。如果我们没有自定义这些地方,就会出现QML默认的样式。所以,据我推断:是默认的样式销毁是出现了这个报错。
综上所述:当在异步加载的代码中,存在类似上面的代码时,将此可以将这一小部分独立存在以一个loader中进行同步加载,例如:
QML,Loarder异步加载报错:Object destroyed during incubation
QML,Loarder异步加载报错:Object destroyed during incubation
QML,Loarder异步加载报错:Object destroyed during incubation
QML,Loarder异步加载报错:Object destroyed during incubation
QML,Loarder异步加载报错:Object destroyed during incubation
QML,Loarder异步加载报错:Object destroyed during incubation
加载后,通过Loaderid.item可以访问到加载的控件,例如shapeCoBoxComp.item=shapeComboBox.

本文地址:https://blog.csdn.net/weixin_44103773/article/details/109239438

相关标签: QT