2009-11-11 13 views
6

私はWindows上でQt 4.5.2を使って書いているアプリケーションを持っています。いくつかの設定をINIファイルに保存し、QSettingsを使用して設定をロードして保存します。私はINIファイルにいくつかコメントしたいと思います。例えばQt:Q INIファイルとコメント付きWindowsでの設定

:私は設定はコメントはファイルから取り除かれ

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

でファイルをロードするときしかし、私が見つけた

; Meta-info to store with the file 
[General] 
MainWindow\[email protected](1280 600) 
MainWindow\[email protected](0 300) 
Debugging=true 

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

先制コメント:

  • 私は将来、クロスプラットフォームの互換性のために、WindowsのINIファイルをしたい私は、アプリケーションの外部
  • 私は検討していますを参照するためのファイル内のメタ情報を格納したい
  • メタ情報をINIの一部にしてという名前=値の規則を使用しますが、情報をコメントとして保存することをお勧めします。

答えて

4

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

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

ここに私の提案です:

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

私はそれが動作するかどうか、それが実際に文字列を格納方法を確認するためにそれで遊ん知りません。ああ、プログラムから同じ識別子を誤って使用しないように、コードから設定したり、正しく文書化してください。

+0

キーライン:「生成されたファイルのように扱う:それは1つです」それがすべてだと私は思う。 Qt以外の設定をファイルと一緒にやりたいのであれば、実際にはQt設定ファイルではありません。 – dwj

関連する問題