Q设置-正在读取INI文件

QSettings - reading INI file

本文关键字:读取 INI 文件 设置      更新时间:2023-10-16

我创建了一个INI文件,然后尝试读取它。没有编译错误,文件也在那里,但我的QStringList 中没有收到任何数据

QFile checkConfig(configPath);
    if(checkConfig.exists())
    {
        QSettings* settings = new QSettings(configPath, QSettings::IniFormat);
        settings->beginGroup("General");
        const QStringList childKeys = settings->childKeys();
        QStringList values;
        foreach (const QString &childKey, childKeys)
            values << settings->value(childKey).toString();
        settings->endGroup();
        QString test = configPath;
        int a;
    }

这是我的INI文件

[General]
InterviewPath=C:/1234

问题源于未正确创建INI。

QSettings settings(configPath, QSettings::IniFormat);
    settings.beginGroup("/General");
    settings.setValue("/InterviewPath", interviewPath);
    settings.endGroup();

不要使用设置->beginGroup("常规"(;

        QCoreApplication a(argc, argv);
    QSettings* settings = new QSettings("d:/a.ini", QSettings::IniFormat);
  //  settings->beginGroup("General");
    const QStringList childKeys = settings->childKeys();
    QStringList values;
    foreach (const QString &childKey, childKeys)
        values << settings->value(childKey).toString();
   // settings->endGroup();
    qDebug()<<values;
   QSettings* settings = new QSettings(configPath, QSettings::IniFormat);
   settings.sync(); // !!!

若您的第一个调用将在一些事件处理后运行,那个么一切都会好起来。但若您想直接打开.ini文件并以相同的方法使用它,那个么您应该强制同步。有关sync((的更多信息,请阅读qt文档。