QML设置类型在我的应用程序中无效

QML设置类型在我的应用程序中无效,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我已决定使用Qt.labs.settings 1.0以以下方式保存窗口的状态: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Window 2.2 import Qt.labs.settings 1.0 ApplicationWindow { // Main configuration section for the application window id: mainwindow visi

我已决定使用
Qt.labs.settings 1.0
以以下方式保存窗口的状态:

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Window 2.2
import Qt.labs.settings 1.0

ApplicationWindow {
    // Main configuration section for the application window
    id: mainwindow
    visible: true // Needed if loading from c++.

    property string accentchosen: "#F4511E"

    height: Units.dp(600)
    minimumHeight:  Units.dp(500)
    maximumHeight: Units.dp(1200)
    width: Units.dp(800)
    minimumWidth: Units.dp(300)
    maximumWidth: Units.dp(1080)

    Settings {
        id: settings
        property alias x: mainwindow.x
        property alias y: mainwindow.y
        property alias width: mainwindow.width
        property alias height: mainwindow.height
        property alias accentchosen: mainwindow.accentchosen
    }
}
此代码将导致我的应用程序从上次打开的
x
y
位置开始,但其
宽度
高度
似乎不符合其上次状态,而是保持为
600
x
800


根据第二次,以及之后的每一次,它都应该记住自己的状态。我做错什么了吗?

你准备好了吗?即使文档中没有明确说明,也必须对设置进行持久化。这也可能是一个bug:它在我的OSX安装上运行得非常好。如果设置了应用程序标识符,它也可以在android和windows上运行。顺便问一下,这段代码真的有效吗?ApplicationWindow是控制模块的一部分,您似乎并没有导入它。@ddriver它必须在带有标识符的窗口上工作,是的。它在我的OSX中仍然有效,没有它们。在实现中可能会有一些不同。至于代码,我在编辑中漏掉了一行。OP没有在原始代码中添加任何导入。是的,伙计们,我没有添加包含,我的错。我正在使用papyros的qml材料设计模块,正如您所看到的(更准确地说,我正在测试),我认为全部原因是宽度和高度不是一个常量,而是由表达式
单位给出的。dp
您设置了吗?即使文档中没有明确说明,也必须对设置进行持久化。这也可能是一个bug:它在我的OSX安装上运行得非常好。如果设置了应用程序标识符,它也可以在android和windows上运行。顺便问一下,这段代码真的有效吗?ApplicationWindow是控制模块的一部分,您似乎并没有导入它。@ddriver它必须在带有标识符的窗口上工作,是的。它在我的OSX中仍然有效,没有它们。在实现中可能会有一些不同。至于代码,我在编辑中漏掉了一行。OP没有在原始代码中添加任何导入。是的,伙计们,我没有添加包含,我的错。我正在使用papyros的qml材料设计模块(更准确地说,我正在测试),我认为全部原因是宽度和高度不是一个常量,而是由表达式
单位给出的。dp