Qt 什么时候加载器应该优先于createQmlObject,反之亦然-QML?

Qt 什么时候加载器应该优先于createQmlObject,反之亦然-QML?,qt,qml,qt-quick,Qt,Qml,Qt Quick,两者都可以动态创建对象。 在QML中,Loader何时应优先于Qt.createQmlObject,反之亦然?可以将Loader视为特定对象的占位符。它还使您能够通过加载程序的id引用底层对象 Qt.createQmlObject通常比加载器更强大,因为您可以根据需要实例化任意多的对象,而且它没有加载器的开销。但是,为了能够引用它,您必须注意跟踪您创建的内容 其他函数Qt.createComponent()和createObject()提供了类似的优点,另外还可以传递要在对象创建中使用的属性,而

两者都可以动态创建对象。

在QML中,
Loader
何时应优先于
Qt.createQmlObject
,反之亦然?

可以将
Loader
视为特定对象的占位符。它还使您能够通过
加载程序
的id引用底层对象

Qt.createQmlObject
通常比
加载器
更强大,因为您可以根据需要实例化任意多的对象,而且它没有
加载器
的开销。但是,为了能够引用它,您必须注意跟踪您创建的内容

其他函数
Qt.createComponent()
createObject()
提供了类似的优点,另外还可以传递要在对象创建中使用的属性,而不是仅在对象创建后才对其进行设置


我个人在
Loader
中几乎看不到什么意义,而且很少在生产代码中使用它。在我看来,它是为了“非程序员”而引入的,就像大多数最近的开发一样,比如新的设计器和QML
.ui
文件,我觉得这有点烦人,但这是可以理解的——试图增加非程序员的采用率。

加载程序中没有什么意义?你有没有用数百个源文件构建过一个真正的QQ2应用程序?将不可见屏幕隐藏在
Loader
s后面,可以使你的应用程序在1秒而不是10秒的时间内出现在屏幕上。@peppe
Loader
没有什么魔力,它不比动态实例化对象快,但它更重。在有很多组件的应用程序中,我预加载并将组件保留在内存中,以便更快地实例化。如果您能够正确地进行动态对象实例化,
Loader
只是开销和源污染。此外,
Loader
与“看不见的屏幕”无关,不管这些屏幕是什么。如果你是说看不见的组件处于空闲状态——这只会浪费内存,那么IMO现代硬件的速度足以让CPU周期成为节省内存的良好投资,特别是在移动设备上。我没说它有魔力,我说过,
Loader
提供的动态实例化在任何非平凡的QQ2应用程序中都会用到。我说“我个人认为
Loader
没有什么意义。”-您的体验可能会有所不同。
而且它没有装载机的开销
请参考您的索赔说明装载机的开销。谢谢