我已注册MyType
为- 。我应该在 QML 端使用什么语法来分配一些东西?qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType")
QmlListProperty<MyListElement>
myList
MyType.myList
似乎这是不正确的:
Component.onCompleted: {
MyType.myList = [
MyListElement {
}
]
}
我已注册MyType
为- 。我应该在 QML 端使用什么语法来分配一些东西?qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType")
QmlListProperty<MyListElement>
myList
MyType.myList
似乎这是不正确的:
Component.onCompleted: {
MyType.myList = [
MyListElement {
}
]
}
您必须使用 javascript 创建 MyListElement 对象,然后使用 push 将其添加到列表中,因为 QmlListProperty 已转换为 QML 中的列表。
在这种情况下Qt.createQmlObject()
,假设 MyListElement 是通过以下方式创建的:
qmlRegisterType<MyListElement>("org.examples", 1, 0, "MyListElement");
所以解决方案是:
Component.onCompleted: {
var o = Qt.createQmlObject('import org.examples 1.0; MyListElement {}', this)
// o.foo_property = foo_value;
MyType.myList.push(o);
}