ConfigUtil.h文件
#ifndef CONFIGUTILS_H
#define CONFIGUTILS_H
#include <QString>
class ConfigUtils
{
private:
ConfigUtils(){}
~ConfigUtils(){}
public:
static void setCfgStr(QString sFileName,
QString sSecName,
QString sKey,
QString sValue);
static QString getCfgStr(QString sFileName,
QString sSecName,
QString sKey,
QString sDefault = "");
static int getCfgList(QString sFileName,
QString sSecName,
QString sKeyName,
QStringList &strings);
static void writeCfgList(QString sFileName,
QString sSecName,
QString sKeyName,
QStringList &strings);
static void setCfgInt(QString sFileName,
QString sSecName,
QString sKey,
int iValue);
static int getCfgInt(QString sFileName,
QString sSecName,
QString sKey,
int iDefault = 0);
static void setCfgFloat(QString sFileName,
QString sSecName,
QString sKey,
float fValue);
static float getCfgFloat(QString sFileName,
QString sSecName,
QString sKey,
float fDefault = 0.0);
static void setCfgDouble(QString sFileName,
QString sSecName,
QString sKey,
double dValue);
static double getCfgDouble(QString sFileName,
QString sSecName,
QString sKey,
double dDefault = 0.0);
};
#endif
ConfigUtil.cpp文件
#include "ConfigUtils.h"
#include <QApplication>
#include <QDebug>
#include <QFile>
#include <QMessageBox>
#include <QSettings>
#include <QString>
void ConfigUtils::setCfgStr(QString sFileName,
QString sSecName,
QString sKey,
QString sValue)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
settings.setValue(sKey, sValue);
settings.endGroup();
}
QString ConfigUtils::getCfgStr(QString sFileName,
QString sSecName,
QString sKey,
QString sDefault)
{
QString retStr = QLatin1String("");
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
retStr = settings.value(sKey, sDefault).toString();
settings.endGroup();
return retStr.trimmed();
}
int ConfigUtils::getCfgList(QString sFileName,
QString sSecName,
QString sKeyName,
QStringList &strings)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
int iCount = settings.value(sKeyName + "-count").toInt();
QString strValue;
int iRet = 0;
for(int i = 0; i < iCount; i ++)
{
strValue = settings.value(sKeyName + "-" + QString::number(i + 1)).toString();
strValue = strValue.trimmed();
if((strValue.length() != 0) && (strings.indexOf(strValue) < 0))
{
strings << strValue;
iRet ++;
}
}
settings.endGroup();
return iRet;
}
void ConfigUtils::writeCfgList(QString sFileName,
QString sSecName,
QString sKeyName,
QStringList &strings)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
settings.setValue(sKeyName + "-count", strings.count());
for (int i = 0; i < strings.count(); i++)
settings.setValue(sKeyName + "-" + QString::number(i + 1), strings.at(i));
settings.endGroup();
}
void ConfigUtils::setCfgInt(QString sFileName,
QString sSecName,
QString sKey,
int iValue)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
settings.setValue(sKey, QString::number(iValue));
settings.endGroup();
}
int ConfigUtils::getCfgInt(QString sFileName,
QString sSecName,
QString sKey,
int iDefault)
{
int val = iDefault;
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
val = settings.value(sKey, iDefault).toInt();
settings.endGroup();
return val;
}
void ConfigUtils::setCfgFloat(QString sFileName,
QString sSecName,
QString sKey,
float fValue)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
settings.setValue(sKey, QString::number(fValue));
settings.endGroup();
}
float ConfigUtils::getCfgFloat(QString sFileName,
QString sSecName,
QString sKey,
float fDefault)
{
float val = fDefault;
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
val = settings.value(sKey, fDefault).toFloat();
settings.endGroup();
return val;
}
void ConfigUtils::setCfgDouble(QString sFileName,
QString sSecName,
QString sKey,
double dValue)
{
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
settings.setValue(sKey, QString::asprintf("%9.9lf", dValue));
settings.endGroup();
}
double ConfigUtils::getCfgDouble(QString sFileName,
QString sSecName,
QString sKey,
double dDefault)
{
double val = dDefault;
QSettings settings(sFileName, QSettings::IniFormat);
settings.beginGroup(sSecName);
val = settings.value(sKey, dDefault).toDouble();
settings.endGroup();
return val;
}