Live & Learn
分类: LINUX
2015-08-27 10:18:09
通常,为了保存各种系统配置,我们可以通过写注册表或者写ini文件的方式来进行。这里,我就来举例说明如何用qt来实现ini文件的写入和读取。
假如,需要在C盘根目录下面建立一个名为config.ini的文件,里面有一个section叫做“path”,该section下面,有一个key叫做libpath,其值为“c://lib”,也就是下图所示的样子,
之后,我们还将其中的数值读取出来,那么,下面的代码可以作为参考:
#include <QtGui/QApplication>
#include <QSettings>
#include <QStringList>
#include <QVariant>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSettings *configIni = new QSettings("c://config.ini", QSettings::IniFormat, 0);
configIni->beginGroup("path");
configIni->setValue("libPath", "c://lib");
configIni->endGroup();
delete configIni;
QSettings *readIni = new QSettings("c://config.ini", QSettings::IniFormat, 0);
readIni->beginGroup("path");
QStringList keys = readIni->allKeys();
QVariant *var = new QVariant;
for(int i=0; i<keys.size(); i++)
{
qDebug()<<keys[i]<<endl;
QString str = readIni->value(keys[i]).toString();
qDebug()<<"str = "<<str<<endl;
}
delete readIni;
delete var;
return a.exec();
}
//================================================================
void WriteSettings()
{
//QSettings settings("Software Inc", "Spreadsheet"); // windows在注册表中建立建 Software Inc -> Spreadsheet
QSettings settings("Option.ini", QSettings::IniFormat); // 当前目录的INI文件
settings.beginGroup("DevOption");
settings.setValue("mainFun", 25);
settings.setValue("subFun", 40);
settings.setValue("service", 1);
settings.endGroup();
}
void ReadSettings()
{
QSettings settings("Option.ini", QSettings::IniFormat);
int mainFun = settings.value("DevOption/mainFun").toInt();
int subFun = settings.value("DevOption/subFun").toInt();
QString service = settings.value("DevOption/service").toString();
qDebug() << "service" << service;
qDebug() << "mainFun" << mainFun;
qDebug() << "subFun" << subFun;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
WriteSettings();
ReadSettings();
return a.exec();
}