私は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
一見を示すエラーに(下のスクリーンショットを参照)。
これは再帰的に適用readonly
で、a variant of this bugのようです。上記のバグはQt 5.4に修正されました。全体的には、私のコードは幾分低迷して散発的にクラッシュしていますが、QtObject
を使用するアプローチが実際の問題を作成しているかどうかは疑問です(私の実際のコードはかなり大きいので、または単にバイスタンダー)。
の共通のプリミティブ型の値を宣言しているので、example4
がベストプラクティスであることを認識しています。
私の質問は以下のとおりです。
- が不正な構文の強調表示のバグですか?
QtObject
をreadonly property
の値で宣言する際に根本的な問題はありますか?Qt Creator
で構文的に正しいと見なされるにもかかわらず、潜在的な問題はexample1
とexample2
にも適用されますか?
私はQt 5.7
とQt Creator 4.0.2
を使用しています。
あなたのアドバイスはおそらく最も健全なコースです...文法を疑ういくつかの根本的な理由があった場合、ちょうど興味がありました。 :) –