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进行实际内容的更换/加载。但这个时候,异步小心就会出现标题中的报错。报错的原因正如报错中所说:孵化期间被摧毁。
报错代码
这里的Button是自定义的Button,出错的地方也就在这里,下面是自定义的Button。
上图,我们可以看到contentItem和background后面跟着都是一个对象,这里是我们自定义的样式。如果我们没有自定义这些地方,就会出现QML默认的样式。所以,据我推断:是默认的样式销毁是出现了这个报错。
综上所述:当在异步加载的代码中,存在类似上面的代码时,将此可以将这一小部分独立存在以一个loader中进行同步加载,例如:
加载后,通过Loaderid.item可以访问到加载的控件,例如shapeCoBoxComp.item=shapeComboBox.
本文地址:https://blog.csdn.net/weixin_44103773/article/details/109239438
下一篇: 简单的HTML练习03