在设置

时间:2016-05-28 20:29:10

标签: qml

当我写这篇文章时:

property bool token: false

Settings {
    property alias token: root.token
}

然后将应用程序中的token更改为true,下次运行应用程序时tokentrue

但是当我写这篇文章时:

property var token: null

Settings {
    property alias token: root.token
}

并将令牌更改为{'a': 'b'},例如,下次运行应用令牌null时,Settings并不保存JS对象。知道这里有什么问题吗?

更新: 似乎问题不在于保存js对象{'a': 'b'},QML成功保存它,问题在于null如果我将其更改为false一切正常。我想这与此问题相关Storing data using Settings element in QML但我不明白为什么null正在进行后期处理,尽管使用false代替null这个属性的默认值解决了我不喜欢的问题,因为我不想在这里false,道德上不合适,我想要null

更新2: 我发现我的解决方案,没有设置属性的默认值(不是false也不是null)似乎解决了这个问题,这似乎在道德上是这样的:

property var token

Settings {
    property alias token: root.token
}

我不明白为什么null还没有工作。任何解释都会受到欢迎。

1 个答案:

答案 0 :(得分:1)

设置属性的默认值(不是false也不是null)似乎解决了这个问题:

property var token

Settings {
    property alias token: root.token
}