web-dev-qa-db-ja.com

QSettings-iniファイルの場所はどこですか?

WindowsでQSettingsを使用して一部のデータをiniファイルとして保存しています。 iniファイルを確認したいのですが、iniファイルの場所がわかりません。

これは私のコードです:

QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());

どこを見なければならないのですか?それとも、ファイルに書き込むコードを見逃しているのでしょうか? QSettingsはいつその値を書き込みますか?

29
dubila

設定ファイルの正確な場所を出力するには、QSettingsクラスのメソッドfileNameメソッドを使用します。

QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();

コンソール出力は次のようになります。

/home/user/.config/folderName/fileName.conf
37
lucab0ni

ここで探しているものがすべて見つかると思います: http://doc.qt.io/archives/qt-4.7/qsettings.html

プレートフォーム固有です。以下を参照してください:

アプリケーション設定が保存されるプラットフォーム固有のノートの場所

設定をファイルに保存することもできます:

QSettings settings("/home/petra/misc/myapp.ini",
                QSettings::IniFormat);
10
Andy M

QSettings保存場所の変更を QSettings.Scope enumQSettingsデフォルトでローカルスコープに保存します。 Linuxでは、次の場所にローカル設定が見つかりました。

~/.config/CompanyName/ApplicationName.conf

7
Jordan

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);

共有設定ディレクトリ、アプリケーションデータディレクトリなどに設定ファイルのパスがあります。

2
NuclearPeon

特定のパスを指定せずにQSettingsを作成すると、iniファイルは アプリケーションパス に配置されます。

QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");

//...
qDebug() << QApplication::applicationDirPath();

ただし注意してください。アプリケーションパスが変更される可能性があります。たとえば、デバッグモードでQt Creatorを使用してアプリを開発している場合、アプリケーションパスは/debugサブフォルダ。

リリースモードで実行している場合、アプリケーションパスは/releaseサブフォルダ。

また、アプリケーションがデプロイされると、デフォルトでは、アプリケーションパスは実行可能ファイルと同じフォルダーにあります(少なくともWindowsの場合)。

2
Jérôme

Mac OSXでは、〜/ Library/Preferencesにあるファイルを見つけました

QSettingsクラスは、プラットフォームに依存しない永続的なアプリケーション設定を提供します。ユーザーは通常、アプリケーションがセッション全体でその設定(ウィンドウのサイズと位置、オプションなど)を覚えていることを期待します。この情報は、多くの場合、Windowsではシステムレジストリに、Mac OS XではXML設定ファイルに保存されます。UNIXシステムでは、標準がない場合、多くのアプリケーション(KDEアプリケーションを含む)はINI textを使用しますファイル

http://doc.qt.io/archives/qt-4.7/qsettings.html

0
rsc

Linuxでは、このスニペットを使用するか、この行をメインコードに挿入して、Pythonでファイルの場所を見つけることができます。

from PyQt5.QtCore import QSettings

settings = QSettings("Organization Name", "App name")
print(QSettings.fileName(settings))

このような出力を返すはずです。

/$HOME/.config/Organization Name/App name.conf

ソース

0
Alper Ekmekci

windowsのパスは次のようになります:C:\ Users\user_name\AppData\Roaming\bbb

0
milad