• 8797阅读
  • 7回复

[提问]QSettings读取INI配置文件带逗号出问题 [复制链接]

上一主题 下一主题
离线jinling4388
 

只看楼主 倒序阅读 楼主  发表于: 2015-11-10
ini文件如下:
[test]
testvalue=10,56,37,86

代码如下:
QSettings settings(“test.ini”, QSettings::IniFormat);
QString strValue = settings.value("test/testvalue").toString();

运行时strValue为空,但是去掉逗号就可以读到10563786.


环境是VS2012+qt5.2.1+win8
有什么不开心的说出来让我开心开心!
离线johnyork

只看该作者 1楼 发表于: 2015-11-10
把键值用双引号包起来试试:
[test]
testvalue="10,56,37,86"
离线jinling4388

只看该作者 2楼 发表于: 2015-11-11
用双引号是没问题,但是不符合我现有机制。我是迁移的以前的工程,如果实在不行,那就只能改回原来windows API了。
有什么不开心的说出来让我开心开心!
离线lazijiding

只看该作者 3楼 发表于: 2015-11-11
返回的是QStringList,你用toStringList()试一下就明白了
离线jinling4388

只看该作者 4楼 发表于: 2015-11-11
回 lazijiding 的帖子
lazijiding:返回的是QStringList,你用toStringList()试一下就明白了 (2015-11-11 13:36) 

不是QStringList,不加引号的数据读不上来。
有什么不开心的说出来让我开心开心!
离线jinling4388

只看该作者 5楼 发表于: 2015-11-11
多谢大家了,用双引号可以解决问题。
有什么不开心的说出来让我开心开心!
离线lazijiding

只看该作者 6楼 发表于: 2015-11-12
回 jinling4388 的帖子
jinling4388:不是QStringList,不加引号的数据读不上来。 (2015-11-11 15:08) 

QSettings s(...., QSettings::IniFormat);
setWindowTitle(s.value("value_2").toStringList()[2]);

自己试一下不就知道了?因为有逗号返回的是StringList所以你toString时返回的是空值
离线圣域天子

只看该作者 7楼 发表于: 2015-11-12
回 jinling4388 的帖子
jinling4388:用双引号是没问题,但是不符合我现有机制。我是迁移的以前的工程,如果实在不行,那就只能改回原来windows API了。 (2015-11-11 11:38) 

我也觉得不符合习惯,而且QSettings没有用一个开关进行设置
快速回复
限100 字节
 
上一个 下一个