Qt 读写.ini配置文件
一 .ini配置文件介绍
参考百度百科:
.ini 文件是Initialization File的缩写,即初始化文件 [1] ,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
除了windows2003很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。
.ini文件的缺点是,不能嵌套。如果需要嵌套保存信息的话,使用json文件比较合适,json文件的读写参考链接 https://blog.csdn.net/null_plus/article/details/121786989?spm=1001.2014.3001.5502
二 Qt 读写.ini文件
qt中,可以很方便地通过 QSettings 类操作读写.ini文件,详细说明请参考qt助手中的说明。
1.读取.ini文件
eg:读取配置文件中的内容
void ServiceMediaPlayer::getSysSetting()
{
//获取配置文件的路径
QString curDir = QCoreApplication::applicationDirPath();
QString fileName = QString("%1/config/appConfig.ini").arg(curDir);
//打开appConfig.ini配置文件,并且设置编码格式
QSettings configIni(fileName, QSettings::IniFormat);
configIni.setIniCodec("utf-8");
//打开标题为:[local] 的组,并读取出port字段的值
configIni.beginGroup("local");
quint16 localPort = configIni.value("port").toUInt() & 0xffff;
configIni.endGroup(); //关闭组
//打开标题为:[server] 的组,并读取出ip和port
configIni.beginGroup("server");
QString serverIp = configIni.value("ip").toString();
quint16 serverPort = configIni.value("port").toUInt() & 0xffff;
configIni.endGroup(); //关闭组
}
2.写.ini文件
void XkPlayerWidget::saveVolume()
{
//打开配置文件并且设置编码
QString curDir = QCoreApplication::applicationDirPath();
QString fileName = QString("%1/config/appConfig.ini").arg(curDir);
QSettings configIni(fileName, QSettings::IniFormat);
configIni.setIniCodec("utf-8");
int volumeSet = 50;
//打开标题为:[displaySet] 的组
configIni.beginGroup("displaySet");
configIni.setValue("volume", volumeSet); //设置volume=50
configIni.endGroup(); //关闭组
}
结果如下图所示: