用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);
效果如下:
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。