Qt如何用QSettings读写ini配置文件

来源:互联网 发布:虚拟机安装教程linux 编辑:程序博客网 时间:2024/06/05 05:32

一、ini文件的格式

ini文件的格式如下,主要是由节、键、值来组成。

[section1]   age=23        nam=lcmsex=man[section2]age=75name=lucimersex=man………………[sectionN] // 节名键 = 值 ………………键 = 值

二、ini配置文件的写入

ini文件的读取和写入都是利用到QSettings 类。

/************************方法一***************************/// 根据ini文件路径新建QSettings类QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat); //通过setValue函数将键值对放在相对于的节下面m_IniFile->setValue( "节名" + "/" + "键名",  "键对应的值");/**************************方法二**********************************/// 根据ini文件路径新建QSettings类QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);m_IniFile ->beginGroup("节名");     // 设置当前节名,代表以下的操作都是在这个节中m_IniFile->setValue( "键名",  "键对应的值"); // 因为上面设置了节了,这里不在需要把节名写上去m_IniFile.endGroup();                   // 结束当前节的操作

三、ini配置文件的读取

ini文件的读取和写入都是利用到QSettings 类。

//通过Value函数将节下相对应的键值读取出来QString value = m_IniFile->Value( "节名" + "/" + "键名").toString;// 同样,ini文件的读取也和写入一样有两种办法,参考ini文件的写入即可。

四、Qt用QSettings读写.ini配置文件简单例子

ui界面

/**************************inifilelearn.h***************/#ifndef INIFILELEARN_H#define INIFILELEARN_H#include <QWidget>#include <QSettings>#include <QtDebug>// 使用C中的 头文件extern "C"{    #include <sys/stat.h>   }namespace Ui {class IniFileLearn;}class IniFileLearn : public QWidget{    Q_OBJECTpublic:    explicit IniFileLearn(QWidget *parent = 0);    ~IniFileLearn();private slots:    void on_putData_clicked();  // 写入数据按键的槽函数    void on_getData_clicked();  // 读取数据按键的槽函数private:    Ui::IniFileLearn *ui;    QSettings *m_IniFile;};#endif // INIFILELEARN_H/******************inifilelearn.cpp*****************/#include "inifilelearn.h"#include "ui_inifilelearn.h"IniFileLearn::IniFileLearn(QWidget *parent) :    QWidget(parent),    ui(new Ui::IniFileLearn){    ui->setupUi(this);    chdir("/"); // 把当前的工作目录改为根目录下(我的运行环境是在linux上)    //获取应用程序可执行文件所在的目录    qDebug()<<"current applicationDirPath: "<<QCoreApplication::applicationDirPath();    //获取应用程序当前工作目录的绝对路径 (为"/"根目录)    qDebug()<<"current currentPath: "<<QDir::currentPath();     // 实例化QSettigns,打开或者新建test.ini文件    m_IniFile = new QSettings("./test.ini", QSettings::IniFormat); }IniFileLearn::~IniFileLearn(){    delete ui;}/*******************************//这里用到的是上面所说的方法一//m_IniFile->setValue( "节名" + "/" + "键名",  "键对应的值");*******************************/void IniFileLearn::on_putData_clicked(){    m_IniFile->setValue( ui->section->text() + "/" + ui->key->text(), ui->value->text());}void IniFileLearn::on_getData_clicked(){    ui->value->setText(m_IniFile->value(ui->section->text() + "/" + ui->key->text()).toString());}

程序运行中

分别在section 、key、value处填入,然后按PutData就能写入ini文件了。
在section 、key中填入,然后按GetData就能在ini文件中查找到节和键相对于的值,并在value处显示出来了。

生成的ini文件

原创粉丝点击