как назначить 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);
}