2016-09-06 3 views
0

У меня есть Singleton определенно в коде QML как:Вложенные свойства Readonly в Singleton не разрешены?

pragma Singleton 

import QtQuick 2.0 

QtObject { 
    /* 
    readonly property QtObject example1: QtObject { 
     readonly property int example1_1: 10 
     readonly property int example1_2: 105 
     readonly property int example1_3: 23 
     readonly property int example1_4: 105 
     readonly property int example1_5: 23 
    } 
    readonly property QtObject example2: QtObject { 
     property int example2_1: 10 
     property int example2_2: 105 
     property int example2_3: 23 
     property int example2_4: 105 
     property int example2_5: 23 
    } 
    property QtObject example3: QtObject { 
     readonly property int example3_1: 10 
     readonly property int example3_2: 105 
     readonly property int example3_3: 23 
     readonly property int example3_4: 105 
     readonly property int example3_5: 23 
    }*/ 
    readonly property variant example4: { 
     "example4_1": 10, 
     "example4_2": 105, 
     "example4_3": 23, 
     "example4_4": 105, 
     "example4_5": 23 
    } 
} 

Они компилировать, однако, example1 имеет участки, выделенные красный цвет (см рисунок ниже) в Qt Creator, казалось бы, с указанием ошибки.

enter image description here

Это кажется a variant of this bug, только с readonly рекурсивно применяется. Указанная ошибка была исправлена ​​в Qt 5.4. В целом, хотя мой код кажется несколько вялым и периодически спотыкался, поэтому мне интересно, может ли подход использования QtObject создавать некоторые актуальные проблемы (мой фактический код довольно большой, поэтому я не уверен, что это преступник, или просто наблюдателем).

Я понимаю, что example4 - лучшая практика, так как я объявляю ряд значений обычного примитивного типа readonly property.

Мои вопросы:

  1. ли подсветка синтаксиса плохой ошибка?
  2. Есть ли фундаментальные проблемы с объявлением QtObject с значениями readonly property?
  3. Были ли какие-либо потенциальные проблемы применимы также к example1 и example2, хотя они считаются синтаксически правильными на Qt Creator?

Я использую Qt 5.7 и Qt Creator 4.0.2.

ответ

1

Правильно ли работает ваш пример при его запуске? Если да, это, скорее всего, ошибка Qt Creator. Самое главное, что ваша программа работает правильно, когда вы ее запускаете, а не то, что Qt Creator правильно отображает. Поэтому проверьте его и f ** k Qt Creator, если он указывает на неправильные вещи, которые являются правильными.

В противном случае я лично использовал бы объекты JSON повсюду, как и ваше имущество example4.

+0

Да, он компилируется отлично ... ваш совет, вероятно, самый надежный курс ... было просто любопытно, если была какая-то основная причина сомневаться в синтаксисе. :) –

Смежные вопросы