1

異なる方法で動作するために複数の設定ファイルからロードする機能を必要とする Qt アプリケーションがあります。たとえば、私のアプリが VAR1、VAR2、VAR3 などの複数のバリエーションをサポートできるとします。メニュー エントリの 1 つで設定を読み込むことができます。現在、私は QSettings オブジェクトを使用してこれを行っており、正常に動作します。しかし、今は別のバリエーションを実装したいと考えています。20 以上の設定を手動で設定する代わりに、事前構成済みの設定ファイルからロードしたいと考えています。

私の知る限り、QSettings ではソースを変更できません。静的メソッド QSettings::setPath を見ましたが、これは QSettings オブジェクトをインスタンス化する前に一度しか実行できません。

1 - 工場出荷時のデフォルトをロードする 2 - ユーザー指定の名前でユーザー設定ファイルを保存する 3 - ユーザー設定ファイルを名前で呼び出す。

可能であれば、自分のニーズを満たすために QSettings を書き直す必要はありません。

4

2 に答える 2

5

QSettingsコンストラクターの1つは、ファイル名を取ります。

QSettings::QSettings (const QString& fileName,
                      Format format, 
                      QObject *parent = 0);

これを使用して、QSettings必要な数のインスタンスを作成します。

QSettings s1("path1.ini", QSettings::IniFormat);
QSettings s2("path2.ini", QSettings::IniFormat);

それらの間でコピーする必要がある場合は、調べてQSettings::allKeys()値を取得できます。

于 2012-10-17T16:17:57.093 に答える
0

INIファイルのようにQSettingsにアクセスしようとしましたか?INIファイルの場所を設定できます

 QSettings settings("/home/petra/misc/myapp.ini",
                    QSettings::IniFormat);
于 2012-10-17T16:15:57.587 に答える