# 设置

Qt带有一个用于加载和存储设置的Settings(设置)元素。 它目前仍然在实验室的模块中,这意味着API将来可能会中断,所以要注意。

这是一个将颜色值应用于根矩形的小示例。 每次用户点击窗口时,都会生成一个新的随机颜色。 当应用程序关闭并重新启动时,应该会看到最后的颜色。 默认颜色应该是最初在根矩形上设置的颜色。

import QtQuick
import Qt.labs.settings 1.0

Rectangle {
    id: root

    width: 320
    height: 240
    color: '#fff' // default color
    Settings {
        property alias color: root.color
    }
    MouseArea {
        anchors.fill: parent
        // random color
        onClicked: root.color = Qt.hsla(Math.random(), 0.5, 0.5, 1.0);
    }
}

每次更改值时都会存储设置值。 这可能并不总是想要的效果。 要仅在需要时存储设置,可以将标准属性与调用时更改设置的函数结合使用。

Rectangle {
    id: root
    color: settings.color
    Settings {
        id: settings
        property color color: '#000000'
    }
    function storeSettings() { // executed maybe on destruction
        settings.color = root.color
    }
}

也可以使用category属性将设置分组到不同的类别中。

Settings {
    category: 'window'
    property alias x: window.x
    property alias y: window.x
    property alias width: window.width
    property alias height: window.height
}

这些设置根据应用程序名称、组织和域进行存储。 此信息通常在C++代码的主函数中设置。

int main(int argc, char** argv) {
    ...
    QCoreApplication::setApplicationName("Awesome Application");
    QCoreApplication::setOrganizationName("Awesome Company");
    QCoreApplication::setOrganizationDomain("org.awesome");
    ...
}

如果正在编写纯QML应用程序,可以使用全局属性Qt.application.nameQt.application.organizationQt.application.domain设置与上面所示相同的属性。

最后更新: 1/26/2022, 7:34:58 PM