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内。