我在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
中的部分以红色突出显示(见下面的屏幕截图),似乎表示错误。
这似乎是a variant of this bug,只有递归应用了readonly
。上述错误已在Qt 5.4中修复。总的来说,尽管我的代码看起来有点迟缓并且偶尔会崩溃,所以我想知道使用QtObject
的方法是否会产生一些实际问题(我的实际代码非常大,所以我'我不确定这是罪魁祸首,还是仅仅是一个旁观者。)
我意识到example4
是最佳做法,因为我宣布了一系列普通原始类型的readonly property
值。
我的问题是:
QtObject
readonly property
值是否有任何基本问题?example1
和example2
,即使它们在Qt Creator
被视为语法正确?我正在使用Qt 5.7
和Qt Creator 4.0.2
。
答案 0 :(得分:1)
运行它时,您的示例是否正常工作?如果是,那很可能是Qt Creator的错误。最重要的是你的程序在运行时正常工作,而不是Qt Creator正确显示。所以测试它和f ** k Qt Creator,如果它表明错误的东西是正确的。
否则我个人会在所有地方使用JSON对象,就像你的example4
属性一样。