用Qt寫界面時,難免會進(jìn)行本地信息的保存,可以使用輕量級數(shù)據(jù)庫sqlite,也可以使用QSettings讀寫配置文件。????如何來進(jìn)行讀寫呢?如下,使用QSettings寫一個通用的讀寫方法:?bool Util::writeInit(QString path, QString user_key, QString user_value){if(path.isEmpty() || user_key.isEmpty()){return false;}else{//創(chuàng)建配置文件操作對象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{//創(chuàng)建配置文件操作對象QSettings *config = new QSettings(path, QSettings::IniFormat);
//讀取用戶配置信息user_value = config->value(QString("config/") + user_key).toString();
return true;} ?}
//獲取界面用戶輸入的配置內(nèi)容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);
效果如下: