2016-09-13 5 views
0

私はを使用して、INIファイルに私のアプリケーションのいくつかの設定を保存しています。 OS XでQSettingsを使用してINIファイルを保存する方法

Windowsの すべてが正常に動作し、私の INIファイルは自分のアプリケーションの同じフォルダに保存されています。しかしon 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ファイルを保存するにはどうすればよいですか?

+0

'QSettings :: status()'呼び出しが返すものは何ですか? (何かを書き込もうとした後)。 'QSettings :: isWritable()'がtrueを返すことは確かですか? –

+0

'QDebug()<< settings-> status();'を試してみました。 – KelvinS

+0

Qtからアプリケーションを実行すると、 'QSettings :: isWritable()'がtrueを返します。しかし、 'macdeployqt MyApp.app'を使って構築し、MyApp.appを実行すると、' QSettings :: isWritable() 'はfalseを返します。 – KelvinS

答えて

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ファイルは、私の場合、私は解決/Users/.../Library/Preferences

であることを、QStandardPaths::ConfigLocation場所に保存されますこの問題は、topicに基づいています。

関連する問題