私はQtアプリケーションを作成しており、プログラムの設定を保存する必要があります。私はそれらを上級ユーザー以外でも簡単に編集できるようにしたいが、上級ユーザーには十分な柔軟性があるようにする(他のプログラムやスクリプトなどを使って簡単に自動編集できるようにする)。 QSettingsには、Windowsのレジストリのネイティブ形式と他のほとんどのプラットフォームのINI形式の2つの形式があります。 INIは問題ありませんが、@ QString(...)やその他のQtの情報は本当に読みにくく、エラーが起こりやすいです。選択する設定の保存形式は何ですか?
レジストリはあまり良くありません。それは混乱するように設計されておらず、編集や高度な使い方にはまったく適していませんでした。スレッドと複数のQSettingsオブジェクト間での同期の問題を解決します(読み書きロックで保護された1つのグローバルオブジェクトを使用することはできますが、すべてを一掃するわけではありません)。私はXMLを見ていますが、冗長であり、QSettingsフォーマット(実際には問題ではありません)を書く必要がありますが、非常に柔軟です。
私はXMLの他の選択肢が存在することを知っていますが、私はそれらに精通していません。私は確かにパーサーを書いてはいけません。基本的なものではなく、自分の最終的なフォーマットの例外です。
アップデート - ノート:私はQSettingsをバイパスしません。ちょうど2つの関数ポインタ(読み込みと書き込みの関数)が静的に渡されたようです私のフォーマットを使用することができます。
更新2:私はまた、通常はGUIを持っていないLinuxサーバについて心配しています。私は人々がサーバからナノなどを介して簡単に構成を編集できるようにしたいと思います。マネージャー(はい、私はデーモンサーバーとリモートGUIマネージャーを持っています)。
私はそれらを見て、QSettingsフォーマット私はeiherを選ぶ。 コンピュータ間を移動するときは問題ありません。ファイルは、ファイルをコピーするのと同じくらい簡単です。レジストリキーをファイルにエクスポートしてインポートする必要があります。そして、新しいregeditで作成された.regファイルを与えると、regeditが文句を言うかもしれません。 – CMircea