一 背景
1 ini文件介绍
.ini 文件是Initialization File的缩写,即初始化文件。
除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。
2 ini文件格式
INI文件由节、键、值组成。
节
[section]
参数(键=值)
name=value
下面是一个ini文件的例子
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName21=value21
KeyName22=value22
其中:[Section1 Name]用来表示一个段落。因为INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。例如:[Section1 Name]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。
注解:使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。
二 Qt读写ini文件
void MainWindow::on_pushButton_writeini_clicked()
{
collectdataspec();
QSettings *configIniWrite = new QSettings("config.ini", QSettings::IniFormat);
configIniWrite->setIniCodec("UTF-8");
configIniWrite->beginGroup("AppConfig");
configIniWrite->setValue("tofspec", QString::number(specval[0]));
configIniWrite->setValue("tofdev", QString::number(specval[1]));
configIniWrite->setValue("multraspec", QString::number(specval[2]));
configIniWrite->setValue("multradev", QString::number(specval[3]));
configIniWrite->setValue("lultraspec", QString::number(specval[4]));
configIniWrite->setValue("lultradev", QString::number(specval[5]));
configIniWrite->setValue("wallinfspec", QString::number(specval[6]));
configIniWrite->setValue("wallinfdev", QString::number(specval[7]));
configIniWrite->setValue("floorspec", QString::number(specval[8]));
configIniWrite->setValue("floordev", QString::number(specval[9]));
configIniWrite->endGroup();
//qDebug()<<specval[0]<<specval[1];
delete configIniWrite;
ui->statusBar->showMessage(QStringLiteral("数据保存成功"),1500);
ui->statusBar->setStyleSheet("color:green;font:18pt '宋体';");
}
void MainWindow::readini()
{
QSettings *configIniRead = new QSettings("config.ini", QSettings::IniFormat);
configIniRead->setIniCodec("UTF-8");
configIniRead->beginGroup("AppConfig");
ui->tof_spec->setText(configIniRead->value("tofspec").toString());
ui->tof_range->setText(configIniRead->value("tofdev").toString());
ui->multra_spec->setText(configIniRead->value("multraspec").toString());
ui->multra_range->setText(configIniRead->value("multradev").toString());
ui->bultra_spec->setText(configIniRead->value("lultraspec").toString());
ui->bultra_range->setText(configIniRead->value("lultradev").toString());
ui->finfred_range->setText(configIniRead->value("wallinfdev").toString());
ui->finfred_spec->setText(configIniRead->value("wallinfspec").toString());
ui->binfred_range->setText(configIniRead->value("floordev").toString());
ui->binfred_spec->setText(configIniRead->value("floorspec").toString());
configIniRead->endGroup();
delete configIniRead;
}