绪论
由于该客户端不需要连接外部服务接口,所以界面中一些设置信息保存时,存储到本地配置文件中,需要时再从配置文件获取。
源码
config.h
#ifndef CONFIG_H
#define CONFIG_H
#include <QVariant>
#include <QSettings>
class Config
{
public:
Config(QString fileName = "");
virtual ~Config(void);
// 存值
void Set(QString, QString, QVariant);
// 取值
QVariant Get(QString, QString);
// 获取表所有的列
QString getSQLColumn(int);
// 获取表名
QString getTableName(int);
private:
QString fileName;
QSettings *settings;
};
#endif // CONFIG_H
config.cpp
#include "config.h"
#include <QtCore/QtCore>
#include <QDateTime>
#include <QDebug>
Config::Config(QString fileName)
{
if (fileName.isEmpty())
{
this->fileName = QCoreApplication::applicationDirPath() + "/Config.ini";
}
else
{
this->fileName = fileName;
}
settings = new QSettings(this->fileName, QSettings::IniFormat);
}
Config::~Config()
{
delete settings;
settings = 0;
}
// 保存值到配置文件
void Config::Set(QString node,QString key,QVariant value)
{
qDebug() << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") + " 存值{node=" + node + ", key=" + key + ", value=" + value.toString() + "}";
settings->setValue(QString("/%1/%2").arg(node).arg(key), value);
}
// 从配置文件取值
QVariant Config::Get(QString node,QString key)
{
return settings->value(QString("/%1/%2").arg(node).arg(key));
}
// 获取列名,原有表四十多张,每个表列在一百六十左右,所以作此处理
QString Config::getSQLColumn(int num)
{
QString sql("");
switch (num) {
case 1 :
sql = "ID,NAME";
break;
default: ;
}
return sql;
}
// 获取表名,原有表四十多张,所以作此处理
QString Config::getTableName(int num)
{
QString name("");
switch (num) {
case 1:
name = "student";
break;
default: ;
}
return name;
}
效果图
(若有什么错误,请留言指正,3Q)