QSetting

Posted judes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QSetting相关的知识,希望对你有一定的参考价值。

1、初始化,判断是否存在ini文件,如果不存在则新建
void iniConfig()
{
    QFileInfo fileInfo(".\config.ini");
    if (!fileInfo.isFile())
    {
        QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
        iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));    //解决读取value值的中文乱码问题
        for (int i = 0; i < 8; i++)//8个组
        {
            QString tempStr = QString("car_%1").arg(i+1);
            iniFile.beginGroup(tempStr);
            iniFile.setValue("net_port", 1000);    //端口
            iniFile.setValue("net_server_ip", "192.168.40.11");    //服务器ip
            iniFile.setValue("net_local_ip", "192.168.40.10");    //本地ip
            iniFile.setValue("net_gwaddr", "192.168.40.1");    //网关
            iniFile.setValue("net_maskaddr", "255.255.255.0");    //子网掩码
            iniFile.endGroup();
        }
    }
}
2、读取值
void getConfig(int carNUm)
{
    QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
    iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));
    QString tempStr = QString("car_%1").arg(carNUm);
    iniFile.beginGroup(tempStr);
    ui.lineEdit_31->setText(iniFile.value("net_port").toString());//端口
    ui.lineEdit_83->setText(iniFile.value("net_server_ip").toString());
    ui.lineEdit_32->setText(iniFile.value("net_local_ip").toString());
    ui.lineEdit_33->setText(iniFile.value("net_gwaddr").toString());
    ui.lineEdit_34->setText(iniFile.value("net_maskaddr").toString());
    iniFile.endGroup();
}
3、设置值
QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
    iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));    //解决读取value值的中文乱码问题
    QString tempStr = QString("car_%1").arg(ui.comboBox_3->currentIndex() + 1);
    iniFile.beginGroup(tempStr);
    iniFile.setValue("net_port", ui.lineEdit_31->text());    //端口
    iniFile.setValue("net_server_ip", ui.lineEdit_83->text());    //服务器ip
    iniFile.setValue("net_local_ip", ui.lineEdit_32->text());    //本地ip
    iniFile.setValue("net_gwaddr", ui.lineEdit_33->text());    //网关
    iniFile.setValue("net_maskaddr", ui.lineEdit_34->text());    //子网掩码
    iniFile.endGroup();

 

以上是关于QSetting的主要内容,如果未能解决你的问题,请参考以下文章

QSetting 不适合我

在文件 qsetting 的末尾追加新数据

用于 QList 的 QSetting<数据类型>

text QSetting示例ui

QSetting

QSetting介绍