AppUtils.h
class AppUtils : public QObject
{
Q_OBJECT
public:
static void setConfigFile(const QString &value); //设置配置文件名
static void readConfig(); //读取配置参数
static void writeConfig(); //写入配置参数
static void newConfig(); //初始值新建配置文件
static bool checkConfig(); //校验配置文件
private:
static QString configFile; //配置文件名
static QString username; //测试用户名
static QString password; //测试密码
};
// APPUTILS_H
AppUtils.cpp
//代码中所用到的字段尽量写成全局变量,放置后期更改
static const QString INI_SQL_CONFIG = "SqlConfig";
static const QString INI_SQL_CONFIG_USERNAME = "username";
static const QString INI_SQL_CONFIG_PASSWORD = "password";
QString AppUtils::configFile = "config.ini";
QString AppUtils::username = "administrator";
QString AppUtils::password = "123123";
void AppUtils::setConfigFile(const QString &value)
{
configFile = value;
}
void AppUtils::readConfig()
{
if (!checkConfig()) {
return;
}
QSettings settings(AppUtils::configFile, QSettings::IniFormat);
settings.beginGroup(INI_SQL_CONFIG);
AppUtils::username = settings.value(INI_SQL_CONFIG_USERNAME).toString();
AppUtils::password = settings.value(INI_SQL_CONFIG_PASSWORD).toString();
settings.endGroup();
}
void AppUtils::writeConfig()
{
//参数 QSettings::IniFormat:代表读取的是 ini 文件,默认是注册表
QSettings settings(AppUtils::configFile, QSettings::IniFormat);
//按分组写入设置
settings.beginGroup(INI_SQL_CONFIG);
settings.setValue(INI_SQL_CONFIG_USERNAME, AppUtils::username);
settings.setValue(INI_SQL_CONFIG_PASSWORD, AppUtils::password);
settings.endGroup();
}
void AppUtils::newConfig()
{
writeConfig();
}
bool AppUtils::checkConfig()
{
//如果配置文件大小为0,则以初始值继续运行,并生成配置文件
QFile file(AppUtils::configFile);
if (file.size() == 0) {
newConfig();
return false;
}
if (file.open(QFile::ReadOnly)) {
bool ok = true;
while (!file.atEnd()) {
QString line = file.readLine();
line = line.replace("\r", "");
line = line.replace("\n", "");
QStringList list = line.split("=");
if (list.isEmpty() || list.count() != 2 || list.at(1) == "") {
ok = false;
break;
}
}
if (ok) {
return true;
}
}
//如果配置文件不完整,则以初始值继续运行,并生成配置文件
newConfig();
return false;
}
















