2013-08-05 152 views
1

在我的QT項目中,我正在使用QSettings從.ini文件讀取值。如果該值包含逗號字符QSettings無法讀取它。我應該如何閱讀這些值?如何使用QSetting讀取值,如果該值包含逗號字符

+1

逗號字符被'QSettings'視爲列表分隔符。嘗試使用'qDebug()<< settings.value(「key」);'來查看你的文件加載的內容。如果它是一個字符串列表,您可以使用'join(「,」)'將其轉換爲字符串。 –

+0

@PavelStrakhov是的,它正在加載爲QStringList。 – Vinod

回答

5

逗號字符被視爲列表分隔符QSettings。帶逗號的INI值被解析爲字符串列表。您可以按如下方式將字符串列表轉換回原始字符串:

QVariant value = settings.value("key"); 
QString string; 
if (value.type() == QVariant::StringList) { 
    string = value.toStringList().join(",");  
} else { 
    string = value.toString(); 
} 
0

只需在配置字符串中創建一個帶有qsettings和逗號的ini文件。作爲ini文件控制字符的字符將會被%百分號轉義。

+1

我想OP是在談論不是由Qt生成的INI文件。 –

相關問題