1

必要性: 標準の Qt 型の構造体を、人間が読み取り可能/編集可能なファイルとの間で読み書きします。

試した:QSettings。それを機能させるのはかなり簡単でした。問題: QSettings は定期的に、および dtor で QSettings::sync() を自動的に呼び出します。設定ファイルが要求に応じてのみ更新され、実行時のデータ構造が要求に応じてのみ変更されるようにする必要があります。

試した:QDataStream。問題: 人間が読み取ったり編集したりできない。

試した: 標準の readline と QString::toInt() などを使用した手動のシリアル化と逆シリアル化。QSettings がサポートする型をサポートする必要がありますが、その QString には「toFoo()」メソッドがありません。この方法は、はるかに多くのコーディングになります。

QSettings を使用せずに人間が読めるデータをシリアル化および逆シリアル化する方法はありますか? それに関するすべてが要件に反しています。ファイルの名前は異なるはずです。アクセスは別の方法で制御する必要があります。

sync() を単にブロックする方法があれば、おそらく十分でしょう。おそらく、他のことは何でも回避できます。私に最も問題を与えるのは「同期」です。

4

1 に答える 1

0

QSettings のソース コードを見ると、人間が判読できる独自の方法でシリアライゼーション/デシリアライゼーションを実行しているように見えます。この機能が Qt の他の部分に存在するようには見えません。また、ファイルシステムが自動的に変更されるポイントが多数あります。

これは Qt では不可能です。

于 2016-04-16T14:17:30.203 に答える