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

C++ 如何在OS X上使用QSettings存储INI文件,c++,macos,qt,ini,qsettings,C++,Macos,Qt,Ini,Qsettings,我正在使用QSettings将应用程序的一些设置存储在INI文件中 在Windows上一切正常,我的INI文件存储在我的应用程序的同一文件夹中。但是在OSX上,我找不到INI文件,当我再次打开应用程序时,设置没有加载 我使用以下代码使用QSettings将值存储在INI文件中: QSettings *settings = new QSettings("settings.ini", QSettings::IniFormat); settings->beginGroup("AppSettin

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

Windows上一切正常,我的INI文件存储在我的应用程序的同一文件夹中。但是在OSX上,我找不到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文件?

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


我基于此解决了问题。

什么
QSettings::status()
调用返回?(在试图写某事之后)。您确定
QSettings::iswriteable()
返回true吗?我尝试了
qDebug()status()返回0。当我从Qt运行应用程序时,
QSettings::iswriteable()
返回true。但是,当我使用
macdeployqt MyApp.app
构建它并运行MyApp.app时,
QSettings::isWritable()
返回false。我的INI文件最终出现在MyApp->Contents->MacOS->settings.INI中(可能是因为我在运行Qt的应用程序时创建的)。但是,我认为INI文件不可读/写,因为它位于MyApp.app内。