先导
本文用于在qt中使用配置文件进行一些配置的保存
方法
关键点就是使用qt的一个类QSettings
,该类提供一系列接口用于配置文件的操作如读取和写入,支持的配置文件格式有ini
、conf
等。使用该类在软件启动时进行初始化操作对一些软件的配置进行赋值操作,可以使得上一次保存的配置可以继续使用,增加程序使用的便捷性。
实现
定义
代码语言:javascript复制QSettings setting = new QSettings(file_path, QSettings::IniFormat);
读取
代码语言:javascript复制QVaraint value = setting->value("key/item");
讲解
- key是指配置的组的键值
- item是指这个配置组里面的具体的配置项的键值
- 返回的是一个QVarant类型的值,可以通过对应的to方法转换为对应的数据,如字符串用
toString
- 如果没有这个配置的话则返回空的QVarant
写入
代码语言:javascript复制setting->setValue("key/item", value);
讲解
key
和item
同上,是用来定位配置项目的。value
则是写入进配置文件的对应配置项的值,类型是QVarant,直接写入值可以自动转换类型
一些错误
中文乱码
中文乱码是因为没有对配置文件的编码做配置而于系统使用编码不匹配导致的,基本解决方案是将配置文件使用一个比较统一的编码格式,因为我个人会跨平台使用代码,所以我会把配置文件的编码统一保存为utf-8
的格式。然后使用方法setIniCodec(QTextCodec::codecForName("UTF-8"));
来设置编码格式。
- 注意:使用该方法需要包含头文件
#include <QTextCodec>
,否则无法使用QTextCodec
的静态方法,并且注意配置文件的编码格式和设置的编码格式匹配。