如何在Qt应用程序中处理“项目文件”?

时间:2009-04-10 07:39:35

标签: c++ xml qt settings

我的Qt应用程序应该能够立即创建/打开/保存单个“项目”。将项目设置存储在文件中的无痛方法是什么?它应该是XML还是不太可怕的东西?

当然,存储在文件中的数据会随着时间的推移而变化。

我需要的是QSettings,但在我的应用程序中与项目相关联,而不是整个应用程序。

3 个答案:

答案 0 :(得分:1)

为了让用户可编辑,我会坚持使用一个键=一行的原始文本,就像在大多数Linux应用程序中一样。

然而,这仅适用于设置,而不适用于我认为需要更复杂结构的完整项目数据。

所以也许JSON

答案 1 :(得分:1)

Pro XML:

  • 您可以在编辑器中查看它
  • 您可以使用任何语言存储任何类型的字符串(unicode support)
  • 学习简单
  • 多个程序可以读取相同的XML
  • 使用XML构建数据很容易。例如,当您使用键/值列表时,如果需要保存树状结构,则会遇到问题。

Contra XML

  • 结果有些臃肿
  • 大多数编程语言(尤其是像C ++这样的旧编程语言)对XML没有很好的支持。旧的XML API以这样的方式设计,即它们可以用任何语言实现(最小的共同点)。 '努夫说。
  • 您需要了解“编码”(或“charset”)的概念。虽然乍一看这看起来微不足道,但有些隐藏的问题可能会让你感到困惑。所以总是用一些变音符号甚至汉字(日语字符)测试你的代码,以确保你做对了。

答案 2 :(得分:1)

您可以使用QSettings将数据存储在特定的.ini文件中。 来自文档:

有时您确实希望访问存储在特定文件或注册表路径中的设置。在所有平台上,如果要直接读取INI文件,可以使用QSettings构造函数,该构造函数将文件名作为第一个参数,并将QSettings :: IniFormat作为第二个参数传递。例如:  QSettings设置(“/ home / petra / misc / myapp.ini”,                     QSettings :: IniFormat);