我们在做项目的时候,经常需要用到ini配置文件来保存应用程序的一些设置信息,比如保存用户的的设置界面信息、窗口大小等。
在这里我简单的学习了一下配置文件的使用,qt中有处理配置文件的类QSettings.
对于配置文件的应用一般包含键值的增、删、改、查
增、改:该函数当键不存在时添加,存在时直接覆盖
void setValue(const QString &key, const QVariant &value)
删
void remove(const QString &key)
查
bool contains(const QString &key) const // 查看改键是否在配置文件中,是返回true,否则返回false
QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const <span style="font-family: Arial, Helvetica, sans-serif;">// 获取键值,第二个参数是当键值不存在时,作为默认值返回</span>
下面自己测试的小例子
头文件(ini.h)
#ifndef INI_H
#define INI_H
#include <QString>
bool isKeyExist(QString strKey);
void setKeyValue(QString strKey, QString strValue);
void removeKey(QString strKey);
QString getKetValue(QString strKey);
#endif // INI_H
源文件(ini.cpp)#include <ini.h>
#include <QSettings>
const QString strIniFileName = "test.ini";
/**
* 描述:判断配置文件中,该键值是否存在
* 参数:strKey, 键值名称
* 返回:true,存在;false,不存在;
* */
bool isKeyExist(QString strKey)
{
QSettings settings(strIniFileName, QSettings::IniFormat);
return settings.contains(strKey);
}
/**
* 描述:添加、修改键值到配置文件中
* 参数:strKey, 键值名称
* 参数:strValue,键值
*/
void setKeyValue(QString strKey, QString strValue)
{
QSettings settings(strIniFileName, QSettings::IniFormat);
settings.setValue(strKey, strValue);
}
/**
* 描述:删除键值
* 参数:strKey,要删除的键值
*/
void removeKey(QString strKey)
{
QSettings settings(strIniFileName, QSettings::IniFormat);
settings.remove(strKey);
}
/**
* 描述:获取键的值
* 参数:strKey,要获取的键值名称
* 返回:得到的键的值
*/
QString getKetValue(QString strKey)
{
QSettings settings(strIniFileName, QSettings::IniFormat);
return settings.value(strKey, "").toString();//
}
main.cpp#include <QCoreApplication>
#include <QString>
#include <ini.h>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<<isKeyExist(QString("name"))<<endl;
setKeyValue(QString("name"), QString("my name is qt"));
qDebug()<<getKetValue(QString("name"))<<endl;
removeKey(QString("name"));
qDebug()<<isKeyExist(QString("name"))<<endl;
return 0;
}