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);