使用QT库QSettings读取INI文件

1、INI文件样式

[SYSTEM]
ITEM_COUNT=3
[ITEM1]
NAME=AAA
VALUE=111
[ITEM2]
NAME=BBB
VALUE=222
[ITEM3]
NAME=CCC
VALUE=333,444,555

2、代码实现

config.h

#ifndef CONFIG_H
#define CONFIG_H

#include <QString>
#include <QVariant>
#include <QSettings>

class Config
{
public:
    Config(QString filename="");
    virtual ~Config();
    void set(QString,QString,QVariant);
    QVariant get(QString,QString);
private:
    QString m_filename;
    QSettings *m_settings;
};

#endif // CONFIG_H

config.cpp

#include "config.h"

#include <QCoreApplication>

Config::Config(QString filename)
{
    if(filename.isEmpty())
    {
        this->m_filename=QCoreApplication::applicationDirPath() + "/config.ini";
    }
    else
    {
        this->m_filename=filename;
    }
    
    this->m_settings=new QSettings(this->m_filename,QSettings::IniFormat);
}

Config::~Config()
{
    delete this->m_settings;
    this->m_settings=0;
}

void Config::set(QString nodename, QString keyname, QVariant keyvalue)
{
    this->m_settings->setValue(QString("/%1/%2").arg(nodename).arg(keyname),keyvalue);
}

QVariant Config::get(QString nodename, QString keyname)
{
    QVariant res=this->m_settings->value(QString("/%1/%2").arg(nodename).arg(keyname));
    
    return res;
}
发布了200 篇原创文章 · 获赞 37 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/wo198711203217/article/details/99682654