ドキュメントは、QSettings::clear
関数について次のように述べています。
この QSettings オブジェクトに関連付けられたプライマリ ロケーションのすべてのエントリを削除します。
フォールバックの場所のエントリは削除されません。
しかし、これはどういう意味ですか?主要な場所とフォールバック場所は何ですか???
プライマリの場所は、OS と設定によって異なります。Windows の場合、これはレジストリなどです。次のドキュメントからQSettings
:
組織名 MySoft とアプリケーション名 Star Runner を持つ QSettings オブジェクトを作成したと仮定しましょう。値を検索すると、次の順序で最大 4 つの場所が検索されます。
- Star Runner アプリケーションのユーザー固有の場所
- MySoft によるすべてのアプリケーションのユーザー固有の場所
- Star Runner アプリケーションのシステム全体の場所
- MySoft によるすべてのアプリケーションのシステム全体の場所
プライマリ ロケーションは、最も具体的な場所です。通常は、アプリケーションのユーザー固有の場所です。
すべてのユーザー/アプリケーションに共有のデフォルト値を提供できます。ただし、 を呼び出しても削除されませんclear()
。ユーザーおよびアプリケーション固有の値のみがクリアされます。
QSettings
会社名とアプリケーション名、またはデフォルトのコンストラクターを使用してオブジェクトを初期化すると、プライマリ値はアプリケーションとユーザー固有の値になります。これは、ほとんどのアプリケーションに当てはまります。QSettings
デフォルトのコンストラクターを使用してオブジェクトを作成するだけの場合は、 QApplication
(アプリケーション名と組織名) の値が使用されます。
QSettings settings("MySoft", "Star Runner");
settings.clear();
// or
QSettings settings(); // use the values from QApplication
settings.clear();
オブジェクトを他の値で初期化する場合はQSettings
、別のプライマリ「ストア」を選択できます。
QSettings settings("MySoft");
settings.clear(); // clears values for whole company if possible.
QSettings settings(QSettings::SystemScope, "MySoft", "Star Runner");
settings.clear(); // clears system wide settings for the application.
QSettings settings(QSettings::SystemScope, "MySoft");
settings.clear(); // clears system wide settings for the company.
この最後の 3 つのケースはまれであり、あまり意味がありません。また、アプリケーションには、システム全体の設定に書き込む権限が必要です。