如何在OS X上使用QSettings存储INI文件

时间:2016-09-13 12:32:41

标签: c++ macos qt ini qsettings

我正在使用QSettings将我的应用程序的某些设置存储在 INI 文件中。

Windows 上,一切正常,我的 INI 文件存储在我的应用程序的同一文件夹中。但是在 OS X 上,我找不到 INI 文件,并且在我再次打开应用程序时未加载设置。

我正在使用以下代码使用QSettings将值存储在 INI 文件中:

QSettings *settings = new QSettings("settings.ini", QSettings::IniFormat);

settings->beginGroup("AppSettings");
settings->setValue("Language", language);
settings->endGroup();

有人知道发生了什么吗?

如何在OS X上的Application.app中存储INI文件?

1 个答案:

答案 0 :(得分:1)

我认为 OS X 不允许编辑应用包内的文件。

我通过更改 INI 文件位置解决了问题:

QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
QSettings *settings = new QSettings(path+"/settings.ini", QSettings::IniFormat);

settings->beginGroup("AppSettings");
settings->setValue("Language", language);
settings->endGroup();

现在 INI 文件将保存在QStandardPaths::ConfigLocation位置,在我的情况下是/Users/.../Library/Preferences

我根据此topic解决了问题。