首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用QSettings保存设置

无法使用QSettings保存设置
EN

Stack Overflow用户
提问于 2021-08-30 11:56:24
回答 1查看 104关注 0票数 0

我在Windows 7下有一个非常简单的测试项目,只在主窗口中使用以下代码:

代码语言:javascript
复制
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QSettings>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QSettings::setDefaultFormat(QSettings::IniFormat);
    QSettings settings("./conf.ini");

    settings.setValue("testconf", 123);

    settings.sync();
}

MainWindow::~MainWindow()
{
    delete ui;
}

我刚刚从零开始做了一个项目,MainWindow是空的。作为参考,我添加了.pro内容,尽管它不应该相关:

代码语言:javascript
复制
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = qsettingstest
TEMPLATE = app
SOURCES += main.cpp\
        mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui

我尝试了设置文件的不同路径,使用QStandardPaths::writableLocation(QStandardPaths::DataLocation),现有目录,例如"c:\mydir“。我还尝试用QSettings *psettings = new QSettings("./conf.ini");替换QSettings *psettings = new QSettings("./conf.ini");,调用sync或不调用sync,但是:

该文件不会被创建或修改(如果我之前手动创建它)。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-30 12:17:47

您可以为QString使用一个QSettings构造函数。这将设置组织名称,而不是文件名(请参见https://doc.qt.io/qt-5/qsettings.html#QSettings,应用程序名称默认为空QString)。

这将从windows注册表存储/读取设置。检查那里有一个/ Check . for钥匙。

您希望使用具有文件名和格式的QSetting构造函数(参见https://doc.qt.io/qt-5/qsettings.html#QSettings-3):

代码语言:javascript
复制
QSettings settings("./conf.ini", QSettings::IniFormat);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68983733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档