我创建一个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
答案 0 :(得分:3)
不要使用settings-&gt; 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;
答案 1 :(得分:3)
问题源于INI未正确创建。
QSettings settings(configPath, QSettings::IniFormat);
settings.beginGroup("/General");
settings.setValue("/InterviewPath", interviewPath);
settings.endGroup();
答案 2 :(得分:1)
QSettings* settings = new QSettings(configPath, QSettings::IniFormat);
settings.sync(); // !!!
如果你的第一个电话会在一些事件处理后运行 - 那么一切都会好的。但是如果你想直接打开.ini文件并以相同的方法使用它 - 那么你应该强制同步。阅读qt docs以获取有关sync()的更多信息。