как назначить QmlListProperty одноэлементного типа

Я имею MyType зарегистрирован как qmlRegisterSingletonType<MyType>("org.examples", 1, 0, "MyType") который имеет QmlListProperty<MyListElement> - myList. Какой синтаксис я должен использовать на стороне QML, чтобы что-то назначитьMyType.myList?

Похоже, это неверно:

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

1 ответ

Решение

Вам нужно создать объект MyListElement с помощью javascript, а затем добавить его в список с помощью 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);
}
Другие вопросы по тегам