Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30182641
  • 博文数量: 230
  • 博客积分: 2868
  • 博客等级: 少校
  • 技术积分: 2223
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 21:48
个人简介

Live & Learn

文章分类

全部博文(230)

文章存档

2022年(2)

2019年(5)

2018年(15)

2017年(42)

2016年(24)

2015年(13)

2014年(1)

2012年(5)

2011年(58)

2010年(56)

2009年(9)

我的朋友

分类: 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();
}

阅读(8030) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~