QSettings有不同的类型

时间:2015-09-18 14:15:12

标签: qt qsettings

我尝试使用QSettings(ini文件,Linux)存储一些不同类型的参数。
当我使用settings.value()从中读取值时,我就会得到QStrings 有没有办法在这个设置文件中存储QVariant类型,或者我应该使用其他存储?

提前致谢!

2 个答案:

答案 0 :(得分:4)

根据the docsQSettings::value()函数返回QVariant。然后应将其转换为您想要的任何类型。

您可以使用QVariant::type()查找存储在QSettings中的类型。

这就是QSettings在Windows上使用NativeFormat的工作原理。

但是,当使用ini文件和大多数简单类型(包括字符串和整数)时,QSettings在ini文件中使用相同的简单表示,因此合并这些类型。它们都在QVariant中以QString类型返回。

更复杂的类型 在ini文件中正确编码,因此会保留这些类型。

答案 1 :(得分:1)

QSettings does not differentiate between string and int values

所述
  

QSettings从.ini文件读取的QVariant的每个值都有字符串类型。

还提出了手动将类型信息附加到存储的字符串的解决方案。因此,如果在阅读期间未找到特殊后缀,则可以手动决定转换为int或bool。

顺便说一下,对于更复杂的类型(如QSize),会存储类型信息,因此QVariat类型是正确的。