在the 4.8 docs中,指定:
使用具有相对路径的文件时,路径应该相对于执行Qt.createComponent()的文件。
所以我使用以下内容创建一个对象:
Qt.createComponent("./foo/bar.qml").createObject(_this)
但我收到错误:
QQmlComponent:组件未就绪
我也试过(没有运气)"foo/bar.qml"
。使用目录结构更改为"foobar.qml"
可以正常工作:
./
+--foo/
| `--bar.qml
`--foobar.qml
我注意到the version 5 docs中没有提到相对网址,所以有一种新方法可以解决这个问题吗?
答案 0 :(得分:0)
我怀疑这与相对路径直接相关。 “组件未就绪”错误表示您在组件准备好之前调用createObject()
。相反,您需要侦听组件的statusChanged
信号,并仅在状态更改为Component.Ready
时创建对象。
请查看Dynamic QML Object Creation from JavaScript以获取完整示例和更多详细信息。