需求:從一個人類可讀/可編輯的文件讀取/寫入標準Qt類型的結構。使用QTextStream反序列化?
試過:QSettings。讓它工作起來相當容易。問題:QSettings會定期自動調用QSettings :: sync(),並在dtor。我需要確保設置文件僅根據請求進行更新,並且該運行時數據結構僅根據請求進行修改。
試過:QDataStream。問題:不可讀/可編輯。
試過:手動序列化和反序列化,使用標準readline和QString :: toInt()等。我現在必須支持QSettings支持的類型,但是QString沒有'toFoo()'方法。這種方式會很多,更多的編碼。
有沒有一種方法來序列化和反序列化人類可讀數據而不使用QSettings?有關它的一切都是違反要求的。這些文件應該以不同的方式命名。訪問應該被控制不同。
如果簡單地阻止sync(),這可能就足夠了。我們可能可以解決其他任何問題。這是「同步」,給我最多的問題。
您可以不使用'QSettings'作爲您類的成員變量,而是根據您的要求在代碼的不同位置創建或刪除的局部變量。 – Tarod
用QTextStream獲得什麼問題? –
如果你想要人類可讀,那麼使用JSON做你自己的序列化可能是值得的。這裏有一個例子:http://doc.qt.io/qt-5/qtcore-json-savegame-example.html –