WindowsでQSettings
を使用して一部のデータをiniファイルとして保存しています。 iniファイルを確認したいのですが、iniファイルの場所がわかりません。
これは私のコードです:
QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());
どこを見なければならないのですか?それとも、ファイルに書き込むコードを見逃しているのでしょうか? QSettings
はいつその値を書き込みますか?
設定ファイルの正確な場所を出力するには、QSettingsクラスのメソッドfileNameメソッドを使用します。
QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();
コンソール出力は次のようになります。
/home/user/.config/folderName/fileName.conf
ここで探しているものがすべて見つかると思います: http://doc.qt.io/archives/qt-4.7/qsettings.html
プレートフォーム固有です。以下を参照してください:
アプリケーション設定が保存されるプラットフォーム固有のノートの場所
設定をファイルに保存することもできます:
QSettings settings("/home/petra/misc/myapp.ini",
QSettings::IniFormat);
QSettings
保存場所の変更を QSettings.Scope
enum 。 QSettings
デフォルトでローカルスコープに保存します。 Linuxでは、次の場所にローカル設定が見つかりました。
~/.config/CompanyName/ApplicationName.conf
QStandardPaths
クラスを確認してください。サポートされているすべてのプラットフォームでの構成を含む複数の標準パスにリンクしています。 https://doc.qt.io/qt-5/qstandardpaths.html
QT> = 5.5:
QString path = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QT <5.5:
QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
共有設定ディレクトリ、アプリケーションデータディレクトリなどに設定ファイルのパスがあります。
特定のパスを指定せずにQSettings
を作成すると、ini
ファイルは アプリケーションパス に配置されます。
QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");
//...
qDebug() << QApplication::applicationDirPath();
ただし注意してください。アプリケーションパスが変更される可能性があります。たとえば、デバッグモードでQt Creatorを使用してアプリを開発している場合、アプリケーションパスは/debug
サブフォルダ。
リリースモードで実行している場合、アプリケーションパスは/release
サブフォルダ。
また、アプリケーションがデプロイされると、デフォルトでは、アプリケーションパスは実行可能ファイルと同じフォルダーにあります(少なくともWindowsの場合)。
Mac OSXでは、〜/ Library/Preferencesにあるファイルを見つけました
QSettingsクラスは、プラットフォームに依存しない永続的なアプリケーション設定を提供します。ユーザーは通常、アプリケーションがセッション全体でその設定(ウィンドウのサイズと位置、オプションなど)を覚えていることを期待します。この情報は、多くの場合、Windowsではシステムレジストリに、Mac OS XではXML設定ファイルに保存されます。UNIXシステムでは、標準がない場合、多くのアプリケーション(KDEアプリケーションを含む)はINI textを使用しますファイル
Linuxでは、このスニペットを使用するか、この行をメインコードに挿入して、Pythonでファイルの場所を見つけることができます。
from PyQt5.QtCore import QSettings
settings = QSettings("Organization Name", "App name")
print(QSettings.fileName(settings))
このような出力を返すはずです。
/$HOME/.config/Organization Name/App name.conf
windowsのパスは次のようになります:C:\ Users\user_name\AppData\Roaming\bbb