在開發中,將一些關鍵的東西寫入或者讀取配置文件中,本文主要就是使用了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
