Qt アプリケーションを作成しており、プログラムの設定を保存する必要があります。上級ユーザー以外でも簡単に編集できるようにしつつ、上級ユーザーにも柔軟に対応できるようにしたい (したがって、他のプログラムやスクリプトなどを介して簡単に自動編集できるようにする)。QSettings は、Windows 用のネイティブ形式であるレジストリと、他のほとんどのプラットフォーム用のネイティブ形式である INI 形式の 2 つの形式を提供します。INI は問題ありませんが、そこに @QString(...) やその他の Qt が表示されると、実際には判読できず、エラーが発生しやすくなります。
レジストリも良くありません。めちゃくちゃになるように設計されていないため、編集や高度な使用には適していません。これにより、スレッドと複数の QSettings オブジェクト間の同期の問題が解決されます (読み取り/書き込みロッカーで保護された 1 つのグローバル オブジェクトを使用することはできますが、すべてを消去するわけではありません)。私は XML を見ていますが、非常に冗長であり、QSettings 形式を記述する必要があります (実際には問題ではありません) が、非常に柔軟です。
XML の他の代替手段が存在することは知っていますが、あまりよく知りません。基本的なものではなく、私自身の最終的な形式を除いて、私は確かにパーサーを書きたくありません。
更新 - 注: QSettings をまったくバイパスしません。そのための形式を記述するだけです。これは、静的関数に渡された 2 つの関数ポインター (読み取り関数と書き込み関数) のように見えます。私のフォーマット。
更新 2:通常は GUI を持たない Linux サーバーについても心配しています。マネージャーを使用せずに、nano などを介してサーバーから簡単に構成を編集できるようにしたいと考えています (はい、私はそうします)。デーモン サーバーとリモート GUI マネージャーが必要です)。