INI文件介绍
1.1 ini语法格式
一个ini文件是由多个section(段)组成。
每个段中都包含多个option(数据项),以key=vlaue形式存储数据;
注释 以 # 或者 ; 开头。
1.2 ini文件示例[AppConfig]
sqlName=111
userName=222
password=333
头文件
#pragma once
#ifndef CONFIG_H
#define CONFIG_H
#include <QVariant>
#include <QSettings>
class Config
{
public:
Config(QString qstrfilename = "");
virtual ~Config(void);
static Config& getInstans()
{
static Config instance;
return instance;
}
void Set(QString, QString, QVariant);
QVariant Get(QString, QString);
private:
QString m_qstrFileName;
QSettings *m_psetting;
};
#endif // CONFIG_H
源文件
#include "config.h"
#include <QtCore/QtCore>
#include <QDebug>
Config::Config(QString qstrfilename)
{
if (qstrfilename.isEmpty())
{
m_qstrFileName = QCoreApplication::applicationDirPath() + "/config/config.ini";
}
else
{
m_qstrFileName = qstrfilename;
}
m_psetting = new QSettings(m_qstrFileName, QSettings::IniFormat);
qDebug() << m_qstrFileName;
}
Config::~Config()
{
delete m_psetting;
m_psetting = 0;
}
void Config::Set(QString qstrnodename, QString qstrkeyname, QVariant qvarvalue)
{
m_psetting->setValue(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname), qvarvalue);
}
QVariant Config::Get(QString qstrnodename, QString qstrkeyname)
{
QVariant qvar = m_psetting->value(QString("/%1/%2").arg(qstrnodename).arg(qstrkeyname));
return qvar;
}
使用(调用)示例:
Config::getInstans().Get("AppConfig","sqlName").toString();