Russian Qt Forum
Март 29, 2024, 11:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Наличие и отсутствие двоеточия: поясните за синтаксис QML  (Прочитано 2469 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Август 07, 2018, 20:10 »

Прочитав документацию вот тут:

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 двоеточие ставить не нужно? Каким волшебным образом вложенный элемент преобразуется в значение поля?
Записан

Собираю информацию по крупицам
http://webhamster.ru
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4724



Просмотр профиля WWW
« Ответ #1 : Август 08, 2018, 01:14 »

без двоеточия — это по аналогии с другими элементами (например, Item): создается объект и описываются его свойства.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.