1

我已注册MyType为- 。我应该在 QML 端使用什么语法来分配一些东西?qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType")QmlListProperty<MyListElement>myListMyType.myList

似乎这是不正确的:

Component.onCompleted: {
  MyType.myList = [
    MyListElement {
    }
  ]
}
4

1 回答 1

0

您必须使用 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);
}
于 2019-09-17T19:56:49.420 回答