2016-09-06 17 views
0

私はSingletonとしてQMLコードで定義した:彼らはコンパイルないシングルトン内のネストされた読み取り専用プロパティは許可されていませんか?

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

これは再帰的に適用readonlyで、a variant of this bugのようです。上記のバグはQt 5.4に修正されました。全体的には、私のコードは幾分低迷して散発的にクラッシュしていますが、QtObjectを使用するアプローチが実際の問題を作成しているかどうかは疑問です(私の実際のコードはかなり大きいので、または単にバイスタンダー)。

の共通のプリミティブ型の値を宣言しているので、example4がベストプラクティスであることを認識しています。

私の質問は以下のとおりです。

  1. が不正な構文の強調表示のバグですか?
  2. QtObjectreadonly propertyの値で宣言する際に根本的な問題はありますか?
  3. Qt Creatorで構文的に正しいと見なされるにもかかわらず、潜在的な問題はexample1example2にも適用されますか?

私はQt 5.7Qt Creator 4.0.2を使用しています。

答えて

1

実行すると正しく動作しますか?はいの場合はQt Creatorのバグでしょう。最も重要な点は、実行時にプログラムが正しく動作することです。Qt Creatorが正しく表示されるわけではありません。 Qt Creatorを正しくテストしてください。

それ以外の場合は、example4プロパティのように、私は個人的にすべてのJSONオブジェクトを使用します。

+0

あなたのアドバイスはおそらく最も健全なコースです...文法を疑ういくつかの根本的な理由があった場合、ちょうど興味がありました。 :) –

関連する問題