2009-04-10 19 views
1

我的Qt應用程序應該能夠一次創建/打開/保存單個「項目」。將項目設置存儲在文件中的無痛方式是什麼?應該是XML還是不太可怕?如何處理我的Qt應用程序中的「項目文件」?

當然,要存儲在文件中的數據是隨時間變化的主題。

我需要的是像QSettings但有界的項目在我的應用程序,而不是整個應用程序。

+0

你是什麼意思的projcet設置? Qt生成的項目/ Makefile不夠嗎? – dirkgently 2009-04-10 08:06:06

+0

他的意思是:他的計劃使用不同的項目。他想知道保存這個最好的方法。 – RvdK 2009-04-10 08:26:36

回答

1

您可以使用QSettings將數據存儲在特定的.ini文件中。 來自文檔:

有時您確實想訪問存儲在特定文件或註冊表路徑中的設置。在所有平臺上,如果您想直接讀取INI文件,可以使用QSettings構造函數,該構造函數將文件名作爲第一個參數並傳遞QSettings :: IniFormat作爲第二個參數。例如: QSettings設置(「/ home/petra/misc/myapp.ini」, QSettings :: IniFormat);

1

我爲了讓它成爲用戶可編輯的,我會堅持純文本,每行一個鍵=值,就像大多數Linux應用程序一樣。

但是,這隻適用於設置,而不是我認爲需要更復雜結構的完整項目數據。

那麼也許JSON

1

臨XML:

  • 你可以看看它在編輯器中
  • 您可以存儲任何類型的字符串的任何語言在它(Unicode支持)
  • 它簡單易學
  • 多個程序可以讀取相同的XML
  • 使用XML構建數據很容易。例如,當您使用鍵/值列表時,當您需要保存樹狀結構時,會遇到問題。

魂鬥羅XML

  • 結果是有點臃腫
  • 大多數編程語言(尤其是舊的,如C++),對XML沒有很好的支持。舊的XML API被設計成可以用任何語言實現(最小公分母)。 'nuff說。
  • 您需要了解「encoding」(或「charset」)的概念。雖然乍一看這可能看起來微不足道,但也有一些隱藏的問題可以咬你。所以總是用一些變音符號甚至漢字(日文字符)來測試你的代碼,以確保你的代碼正確。
相關問題