在理解了上一篇《QSettings 读写配置文件-CSDN博客》如何使用QSettings类对配置文件的读取和修改操作后,本章节我们讲解,如何将配置文件操作封装成一个单独的类,如何调用。
首先新建文件
头文件代码如下:
#ifndef INIFILE_H
#define INIFILE_H
#include
class iniFile
{
public:
iniFile(QString path);
~iniFile();
bool writeIni(QString section,QString keyword, QString keyvalue,bool clear_flag);
bool writeIni(QString section,QString keyword, QString keyvalue);
QString readIni(QString section,QString keyword);
private:
QSettings *config;
};
#endif // INIFILE_H
cpp代码文件如下:
#include "iniFile.h"
iniFile::iniFile(QString path)
{
//创建配置文件操作对象
config = new QSettings(path, QSettings::IniFormat);
//解决中文乱码 *.ini文件格式 ANSI="system" UTF-8="utf-8"
config->setIniCodec(QTextCodec::codecForName("UTF-8"));
}
iniFile::~iniFile()
{
if(config)
{
delete config;
qDebug()
}
}
bool iniFile::writeIni(QString section,QString keyword, QString keyvalue)
{
//将信息写入配置文件
config->beginGroup(section);
config->setValue(keyword, keyvalue);
config->endGroup();
return true;
}
bool iniFile::writeIni(QString section,QString keyword, QString keyvalue, bool clear_flag)
{
if( clear_flag == true )
config->clear();
//将信息写入配置文件
config->beginGroup(section);
config->setValue(keyword, keyvalue);
config->endGroup();
return true;
}
QString iniFile::readIni( QString section,QString keyword)
{
QString keyvalue = config->value(section + "/" + keyword).toString();
return keyvalue;
}
调用代码如下:
QString strPath = appPath+ "/config.txt";
iniFile *inifile = new iniFile(strPath);
//读配置文件
QString strLogo = inifile->readIni("comm","logo");
//写配置文件
inifile->writeIni("modbus","ip",ui->txtIP->text());
//释放指针变量
delete inifile;