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

How to store INI files using QSettings on OS X

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

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

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

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

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

有人知道发生了什么事吗?

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

我认为 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

我根据这个解决了问题