C++ QML QSettings和QML-无法保存/加载设置

C++ QML QSettings和QML-无法保存/加载设置,c++,qt4,qml,qt5,C++,Qt4,Qml,Qt5,我做错了什么?我总是在调试控制台中出现“错误!无法加载数据”。有人能指出错误吗?也许我创造了糟糕的“设置”?这是许可程序的问题 //main.cpp #include <QtGui/QGuiApplication> #include "qtquick2applicationviewer.h" #include <QQmlContext> #include <QSettings> #include "settings.h

我做错了什么?我总是在调试控制台中出现“错误!无法加载数据”。有人能指出错误吗?也许我创造了糟糕的“设置”?这是许可程序的问题

 //main.cpp
    #include <QtGui/QGuiApplication>
    #include "qtquick2applicationviewer.h"
    #include <QQmlContext>
    #include <QSettings>
    #include "settings.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;

    viewer.setMainQmlFile(QStringLiteral("qml/kon/main.qml"));

    Settings* settings = new Settings();

    viewer.rootContext()->setContextProperty("settings", settings);

    viewer.showExpanded();

    return app.exec();
}
在QML中,我使用这样的类:

Button
        {
            id:button1
        nazwa: "Set value"
        onClicked: settings.setValue("1","adskmmads")
    }

    Button
    {
        id:button2
        onClicked: console.log(settings.value("1","error! cannot load data"))
        nazwa: "Load value and show"
    }

QSettings
constructor至少需要2个字符串
organization
name
应用程序
name

QSettings::QSettings(const QString & organization, const QString & application = QString(), QObject * parent = 0);
在您的情况下,只需在
main()

(1) 如果在应用程序中的许多位置使用
QSettings
,则可能需要使用
QCoreApplication::setOrganizationName()
QCoreApplication::setApplicationName()
指定组织名称和应用程序名称,然后使用默认值
QSettings
构造函数:

QCoreApplication::setOrganizationName("MySoft");
QCoreApplication::setOrganizationDomain("mysoft.com");
QCoreApplication::setApplicationName("Star Runner");
...
QSettings settings; //default constructor 
(1) 参考:

QSettings::QSettings(const QString & organization, const QString & application = QString(), QObject * parent = 0);
QCoreApplication::setOrganizationName("MySoft");
QCoreApplication::setOrganizationDomain("mysoft.com");
QCoreApplication::setApplicationName("Star Runner");
...
QSettings settings; //default constructor