我想使用FontLoader
QML组件将字体添加到我的应用程序中。
我的第一个想法是使用Repeater
,但它只支持Item
派生的委托,而FontLoader
不是。
然后,我的下一个想法是使用Component::createComponent(url)
函数动态创建FontLoader
QML组件,但这里应该使用什么url
?是否可以在不向QT_INSTALL_DIR
中的QML文件提供url
的情况下动态创建内置QML组件?
旁注:我知道如果我将FontLoader
子类化是可能的,但如果可能的话,我想避免额外的代码。
我也知道可以使用Component::createQmlObject()
从字符串创建组件,但我真的不想这么做。
您可以使用Instantiator
而不是Repeater
,它允许您动态创建对象,即使它们不是Items
s。
如果你仍然想强制执行,你必须使用Component
:
Component {
id: fontLoaderComponent
FontLoader {}
}
//...
fontLoaderComponent.createObject(parent, {name : "Courier"}); //use it like this to create a new FontLoader