我有一个QML文件Foo.qml
:
import NDDView 1.0
NDDView {
source: "nddcontent/Foo.uip"
Component.onCompleted: console.log("Yay!")
}
NDDView
组件继承自QQuickFramebufferObject
。当我在项目中编译并使用此组件时,我收到错误:
qrc:/Foo.qml:5 Non-existent attached object
如果重要,我的真实组件看起来更像是这样:
NDDView {
property var paths: ([])
property int items: 20
property string prefix: "foo"
Component.onCompleted: {
for (var i=items;i--;) paths.push(prefix+i);
}
}
我正在尝试在实例化组件时以程序方式填充数组。如果没有Component.onCompleted
更好/替代方式执行此任务,我很乐意使用它。
答案 0 :(得分:4)
Component QML Type
模块注册QtQml
类型,出于向后兼容性和便利性原因,QtQuick
模块也是如此。要使类型可用,您必须导入其中任何一个模块。因此,在使用Qt 5编写QML应用程序时,大多数.qml
文件都以:
import QtQuick 2.0 // or later
或
import QtQml 2.0 // or later
最新版本取决于您使用的Qt版本以及您希望支持的Qt版本。如果您使用最新版本中引入的属性或方法,则必须导入每个QML类型开头记录的最新版本。