QSettings可以用来读取和存储持久化的配置内容,一般从.ini为后缀的配置文件中存读。
mysettings.ini文件内容示例如下:
[ServerInfo]
serverIp=http://192.168.108.108
serverPort=8888
serverWebsocket=ws://192.168.108.100:8888/websocket
[CLientInfo]
clientName=xxx监控系统
[UserInfo]
USERNAME="YWRtaW4="
PASSWORD=MTIzcXdl
如果要读取客户端名字,则使用方式为:
cfgSettings= new QSettings(QApplication::applicationDirPath() + "/myysettings.ini", QSettings::IniFormat, this);
cfgSettings->setIniCodec("UTF8");//以utf8格式存储
QString clientName=cfgSettings->value("ClientInfo/clientName", QStringLitera("读取失败时返回的默认内容")).toString();
其中,这里规定了ini文档是utf8编码(unicode字符集的一种编码方式),则需要mysettings.ini是以utf8编码,这样对应的才能解析。
如果要修改,则:
QString newName=QStringLiteral("新名字");
myettings->setValue("ClientInfo/clientName", newName);
QSettings使用简单,主要是很多同学在使用中文的时候出问题。要么写入了乱码,要么读取了乱码。其实,编码问题我们只需要把写或者读的过程,一步步拆开来理解,他就被扒光,没有秘密了。
写UTF8编码的字符串 (A):1.将A以utf8 编码成二进制数据a,将该二进制数据a,写入文档。
读UTF8编码数据:获取二进制数据a,以utf8解码,得到对应字符串内容,然后展示。
所以,关键在于,二进制数据以怎样的规范编解码。编码,即规范。