2

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 文件?

4

1 回答 1

3

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

我根据这个主题解决了这个问题。

于 2016-09-13T21:07:50.810 回答