如何分配单例类型的 QmlListProperty
how to assign QmlListProperty of singleton type
我已将 MyType
注册为 qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType")
,其中 QmlListProperty<MyListElement>
- myList
。
我应该在 QML 端使用什么语法来为 MyType.myList
赋值?
好像不对:
Component.onCompleted: {
MyType.myList = [
MyListElement {
}
]
}
您必须使用 javascript 创建 MyListElement 对象,然后使用推送将其添加到列表中,因为 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);
}
我已将 MyType
注册为 qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType")
,其中 QmlListProperty<MyListElement>
- myList
。
我应该在 QML 端使用什么语法来为 MyType.myList
赋值?
好像不对:
Component.onCompleted: {
MyType.myList = [
MyListElement {
}
]
}
您必须使用 javascript 创建 MyListElement 对象,然后使用推送将其添加到列表中,因为 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);
}