QSettings操作配置文件


用Qt写界面时,难免会进行本地信息的保存,可以使用轻量级数据库sqlite,也可以使用QSettings读写配置文件。

如何来进行读写呢?如下,使用QSettings写一个通用的读写方法:

bool Util::writeInit(QString path, QString user_key, QString user_value)

{

if(path.isEmpty() || user_key.isEmpty())

{

return false;

}

else

{

//创建配置文件操作对象

QSettings *config = new QSettings(path, QSettings::IniFormat);


//将信息写入配置文件

config->beginGroup("config");

config->setValue(user_key, user_value);

config->endGroup();


return true;

}

}


bool Util::readInit(QString path, QString user_key, QString &user_value)

{

user_value = QString("");

if(path.isEmpty() || user_key.isEmpty())

{

return false;

}

else

{

//创建配置文件操作对象

QSettings *config = new QSettings(path, QSettings::IniFormat);


//读取用户配置信息

user_value = config->value(QString("config/") + user_key).toString();


return true;

}

}


//获取界面用户输入的配置内容

QString address = address_line_edit->text(); //地址

QString port = port_line_edit->text(); //端口


向user.ini配置文件中写入地址、端口

bool is_address = Util::writeInit(QString("./user.ini"), ADDRESS, address);

bool is_port = Util::writeInit(QString("./user.ini"), PORT, port);


从user.ini配置文件中读取地址、端口

QString address_value;

QString port_value;

bool is_address = Util::readInit(QString("./user.ini"), ADDRESS, address_value);

bool is_port = Util::readInit(QString("./user.ini"), PORT, port_value);