• Qt -- QSetting类/ini配置文件的读写操作


    在开发中,将一些关键的东西写入或者读取配置文件中,本文主要就是使用了QSettings的setValue和value。

    QSettings可以存储一系列设置。每个设置包括指定设置名称(键)的一个字符串和一个与该键关联的QVariant存储数据。使用setValue()可以实现一个设置。 

    用户通常希望应用程序在会话中记住其设置(窗口大小和位置,选项等)。此信息通常存储在Windows上的系统注册表中,以及macOS和iOS 上的属性列表文件中。在Unix系统上,在没有标准的情况下,许多应用程序(包括KDE应用程序)使用INI文本文件。在项目中,有时需要在程序之外设定一些初始值,一般这些初始值会写入到配置文件中。

    ini配置文件格式:ini文件由组、键、值组成。


    Qt是通过QSettings类来操作配置文件的。 QSettings的API基于QVariant,允许您以最少的工作量保存大多数基于值的类型,例如QStringQRectQImage

    指定QSettings使用的存储格式:

    配置文件写操作:

    void MainWindow::writeConfig()
    {
        //创建ini配置文件
        iniFile = new QSettings("sysConfig.ini", QSettings::IniFormat);
        //组开始
        iniFile->beginGroup(tr("Tom"));
        //设置键值对
        iniFile->setValue(tr("age"), tr("23"));
        iniFile->setValue(tr("gender"), tr("male"));
        iniFile->setValue(tr("id"), tr("00001"));
        //获取当前组
        QString group=iniFile->group();
        qDebug().noquote()<<"group:"<<group;
        //组结束
        iniFile->endGroup();
     
        iniFile->beginGroup(tr("Helen"));
        iniFile->setValue(tr("age"), tr("20"));
        iniFile->setValue(tr("gender"), tr("female"));
        iniFile->setValue(tr("id"), tr("00002"));
        iniFile->endGroup();
    }
    

      

    配置文件读操作 :

    void MainWindow::readConfig()
    {
        //获取配置文件名
        QString fileName=iniFile->fileName();
        qDebug().noquote()<<"fileName:"<<fileName;
     
        //判断键是否存在
        bool key=iniFile->contains("Helen/age");
        qDebug().noquote()<<"Helen/age is "<<key;
     
        //移除键
        iniFile->remove("Helen/age");
     
        //读取键值对
        int age = iniFile->value("Tom/age").toInt();
        QString gender = iniFile->value("Tom/gender").toString();
        QString id = iniFile->value("Tom/id").toString();
        qDebug()<<age<<gender<<id;
    }
    

      

    例:

        //test
        QString INIPath = "D://";
        QString ImageName = "";
        
       // 获取当前时间
        QDateTime time = QDateTime::currentDateTime();
        QString dateTime = time.toString("MMddhhmmsszzz");
        QString str= QString("Data%1.dat").arg(dateTime);
    
        //保存INI文件
        //qt写入ini配置文件
        QSettings settings(INIPath + "PicTime.ini",QSettings::IniFormat);  //创建ini配置文件
        settings.beginGroup("TimeRec");  //组开始
        settings.setValue(dateTime,QDateTime::currentDateTime().toString("yyyyMMdd-hhmmsszzz"));  //设置键值任务
        settings.endGroup();   //组结束
    

      

    https://blog.csdn.net/mars_xiaolei/article/details/97385548

  • 相关阅读:
    yum安装工具的理解
    Linux防火墙
    Python的优雅写法
    Python的time模块
    Python中根据提供的日期,返回是一年中的第几天
    观察者模式
    数据插入INSERT
    RSA加密、解密、签名、校验签名
    js的apply和call
    js插件编程-tab框
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14543694.html
Copyright © 2020-2023  润新知