5

ドキュメントは、QSettings::clear関数について次のように述べています。

この QSettings オブジェクトに関連付けられたプライマリ ロケーションのすべてのエントリを削除します。

フォールバックの場所のエントリは削除されません。

しかし、これはどういう意味ですか?主要な場所とフォールバック場所は何ですか???

4

1 に答える 1

5

プライマリの場所は、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 つのケースはまれであり、あまり意味がありません。また、アプリケーションには、システム全体の設定に書き込む権限が必要です。

于 2015-05-26T13:07:14.070 に答える