Прочитав документацию вот тут:
http://doc.qt.io/qt-5/qml-coordinate.htmlНаписал такой код:
Item {
id: root
property double geoTransportLatitude: 0
property double geoTransportLongitude: 0
...
Location {
id: location
coordinate {
latitude: root.geoTransportLatitude
longitude: root.geoTransportLongitude
}
}
Binding
{
target: map
property: "center"
value: location.coordinate
when: location.coordinate.isValid
}
И он работает. А потом думаю: стоп, чего это он работает? В биндинге идет обращение к полю
coordinate элемента
location. А значение поля
coordinate в элементе
location не задано! Есть какой-то странный вложенный элемент с типом
coordinate (почему-то с маленькой буквы), но он же не задает _значение_поля_
coordinate.
Взял, и поставил двоеточие после
coordinate в элементе
location, вот так:
coordinate: {
latitude: root.geoTransportLatitude
longitude: root.geoTransportLongitude
}
И получил ошибку:
MapArea.qml:90:21: Unable to assign double to QGeoCoordinate
Теперь сижу и думаю: что эта запись БЕЗ двоеточия означает? Почему при описании свойства coordinate двоеточие ставить не нужно? Каким волшебным образом вложенный элемент преобразуется в значение поля?