• 4562阅读
  • 1回复

qsettings的小问题(已结贴) [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-01
QString mask;//子网掩码
if(strMask.count("255")==2)
{
    mask=QString("16");
}

mask=mask+QString(";");
settings.setValue("Mask",mask);

结果在文件会出现:

Mask="16;"
我不希望两边有引号,我希望结果是:
Mask=16

该怎么做阿 大家有没有遇到过............



以上原因是mask里有分号,
有分号时Mask这一项的值就会带"",
很奇怪的逻辑.....
[ 此帖被浪迹江湖在2010-01-01 13:46重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-01-04
没有什么奇怪的,

QSettings 要负责读和写,而且它同时支持 字符串和字符串列表。如果你的字符串包含分号或逗号,你将无法区分是一个字符串还是一个字符串列表

具体细节参考:

  1. void QSettingsPrivate::iniEscapedString(const QString &str, QByteArray &result, QTextCodec *codec)
  2. {
  3.     bool needsQuotes = false;
  4. ...
  5.         if (ch == ';' || ch == ',' || ch == '=')
  6.             needsQuotes = true;
  7. ...
快速回复
限100 字节
 
上一个 下一个