6

Windows で Qt 4.5.2 を使用して作成しているアプリケーションがあります。いくつかの設定を INI ファイルに保存し、QSettings を使用して設定を読み込んで保存しています。INI ファイルにコメントを付けたいと思います。

例えば:

; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true

ただし、設定ファイルをロードすると見つかりました

QSettings settings( "settings.ini", QSettings::IniFormat );

コメントはファイルから削除されます。INI ファイルは、ロード後にQSettings::sync()の呼び出しによって書き直されます (これはコンストラクターによって自動的に行われます)。同期後にコメントを保持する方法はありますか?

先制的なコメント:

  • 将来のクロスプラットフォーム互換性のために、Windows に INI ファイルが必要です
  • アプリケーション外で参照できるようにメタ情報をファイルに保存したい
  • メタ情報を INI のセクションにして、name=valueルールを使用することを検討していますが、情報をコメントとして保持したいと考えています。
4

1 に答える 1

6

QSettings「保存」という概念がありません。それに加えたすべての変更は最終的なものと見なされ、頻繁かつ透過的にディスクに書き込まれます。

のドキュメントではQSettings、ini ファイルのコメントについて言及されていません。これにはある程度の意味があります。結局のところ、これはレジストリ値でもある可能性があります。生成されたファイルのように扱います。それは 1 つです。

これが私の提案です:

[General]
Comment = @String(Meta-info to store with the file)
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true

それが機能するかどうかはわかりません。実際に文字列がどのように格納されるかを試してみてください。ああ、プログラム内から誤って同じ識別子を使用しないように、コードから設定するか、適切に文書化してください。

于 2009-11-11T04:13:29.137 に答える