在开发中,将一些关键的东西写入或者读取配置文件中,本文主要就是使用了QSettings的setValue和value。
QSettings可以存储一系列设置。每个设置包括指定设置名称(键)的一个字符串和一个与该键关联的QVariant存储数据。使用setValue()可以实现一个设置。
用户通常希望应用程序在会话中记住其设置(窗口大小和位置,选项等)。此信息通常存储在Windows上的系统注册表中,以及macOS和iOS 上的属性列表文件中。在Unix系统上,在没有标准的情况下,许多应用程序(包括KDE应用程序)使用INI文本文件。在项目中,有时需要在程序之外设定一些初始值,一般这些初始值会写入到配置文件中。
ini配置文件格式:ini文件由组、键、值组成。
Qt是通过QSettings类来操作配置文件的。 QSettings的API基于QVariant,允许您以最少的工作量保存大多数基于值的类型,例如QString,QRect和QImage。
指定QSettings使用的存储格式:
配置文件写操作:
void MainWindow::writeConfig() { //创建ini配置文件 iniFile = new QSettings("sysConfig.ini", QSettings::IniFormat); //组开始 iniFile->beginGroup(tr("Tom")); //设置键值对 iniFile->setValue(tr("age"), tr("23")); iniFile->setValue(tr("gender"), tr("male")); iniFile->setValue(tr("id"), tr("00001")); //获取当前组 QString group=iniFile->group(); qDebug().noquote()<<"group:"<<group; //组结束 iniFile->endGroup(); iniFile->beginGroup(tr("Helen")); iniFile->setValue(tr("age"), tr("20")); iniFile->setValue(tr("gender"), tr("female")); iniFile->setValue(tr("id"), tr("00002")); iniFile->endGroup(); }
配置文件读操作 :
void MainWindow::readConfig() { //获取配置文件名 QString fileName=iniFile->fileName(); qDebug().noquote()<<"fileName:"<<fileName; //判断键是否存在 bool key=iniFile->contains("Helen/age"); qDebug().noquote()<<"Helen/age is "<<key; //移除键 iniFile->remove("Helen/age"); //读取键值对 int age = iniFile->value("Tom/age").toInt(); QString gender = iniFile->value("Tom/gender").toString(); QString id = iniFile->value("Tom/id").toString(); qDebug()<<age<<gender<<id; }
例:
//test QString INIPath = "D://"; QString ImageName = ""; // 获取当前时间 QDateTime time = QDateTime::currentDateTime(); QString dateTime = time.toString("MMddhhmmsszzz"); QString str= QString("Data%1.dat").arg(dateTime); //保存INI文件 //qt写入ini配置文件 QSettings settings(INIPath + "PicTime.ini",QSettings::IniFormat); //创建ini配置文件 settings.beginGroup("TimeRec"); //组开始 settings.setValue(dateTime,QDateTime::currentDateTime().toString("yyyyMMdd-hhmmsszzz")); //设置键值任务 settings.endGroup(); //组结束
https://blog.csdn.net/mars_xiaolei/article/details/97385548