QSetting使用中的注意事项
QSetting为Windows、Linux和MacOS系统提供了统一的配置文件/注册表读取方式。
(引用QtHelp的一句话:The QSettings class provides persistent platform-independent application settings.)
但是在读取配置文件时需要注意如下:
- 读取的值是以;(分号)结尾的,如果值中有分号存在,则只能读出分号前的数据,分号后的数据则读取不到。
- ,(逗号)是数组分隔符。如果读取的值中有逗号,则是数组。
- 注释是用;开头,不是用//开头的。
- 如果值中硬是要包含分号和逗号,且不想当作数组,当然也可以,那就需要用双引号包起来。
举例
QSettings settings("D:/SVN/CSIISP/UiVda/bin/vdacfg.ini", QSettings::IniFormat);
settings.setIniCodec(QTextCodec::codecForName("UTF-8"));
QString qsPort=settings.value("pinpad/port").toString(); //读取结果为"6"
QString qsNoteids=settings.value("pinpad/noteids").toString(); //读取结果为空串
QStringList noteids=settings.value("pinpad/noteids").toStringList(); //读取结果为数组[1,2,3]
QString qsNoteids2 = settings.value("pinpad/noteids2").toString(); //读取结果为"1,2,3"
QString qsPresent_status =settings.value("pinpad/present_status").toString(); //读取结果为"3"
QString present_status2 = settings.value("pinpad/present_status2").toString();//读取结果为"3;5,0,0"
配置文件如下: