博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt读写ini文件
阅读量:6990 次
发布时间:2019-06-27

本文共 1819 字,大约阅读时间需要 6 分钟。

一 背景

 

1 ini文件介绍

.ini 文件是Initialization File的缩写,即初始化文件。

除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。

 

2 ini文件格式

INI文件由节、键、值组成。 

  [section] 

参数(键=值)

name=value

 

下面是一个ini文件的例子

[Section1 Name]   

KeyName1=value1   

KeyName2=value2   

...   

[Section2 Name]   

KeyName21=value21   

KeyName22=value22   

 

其中:[Section1 Name]用来表示一个段落。因为INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。例如:[Section1 Name]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。

注解:使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。

 

 

二 Qt写ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    int main(int argc, char *argv[])
  4.  
    {
  5.  
    QCoreApplication a(argc, argv);
  6.  
    //Qt中使用QSettings类读写ini文件
  7.  
    //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
  8.  
    QSettings *configIniWrite =
    new QSettings("hahaya.ini", QSettings::IniFormat);
  9.  
    //向ini文件中写入内容,setValue函数的两个参数是键值对
  10.  
    //向ini文件的第一个节写入内容,ip节下的第一个参数
  11.  
    configIniWrite->setValue(
    "/ip/first", "192.168.0.1");
  12.  
    //向ini文件的第一个节写入内容,ip节下的第二个参数
  13.  
    configIniWrite->setValue(
    "ip/second", "127.0.0.1");
  14.  
    //向ini文件的第二个节写入内容,port节下的第一个参数
  15.  
    configIniWrite->setValue(
    "port/open", "2222");
  16.  
    //写入完成后删除指针
  17.  
    delete configIniWrite;
  18.  
     
  19.  
    return a.exec();
  20.  
    }

 

运行程序后,打开程序目录下的hahaya.ini文件,结果如下图所示:

 

三 Qt读ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    #include <QString>
  4.  
    #include <QDebug>
  5.  
    int main(int argc, char *argv[])
  6.  
    {
  7.  
    QCoreApplication a(argc, argv);
  8.  
     
  9.  
    QSettings *configIniRead =
    new QSettings("hahaya.ini", QSettings::IniFormat);
  10.  
    //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
  11.  
    QString ipResult = configIniRead->value(
    "/ip/second").toString();
  12.  
    QString portResult = configIniRead->value(
    "/port/open").toString();
  13.  
    //打印得到的结果
  14.  
    qDebug() << ipResult;
  15.  
    qDebug() << portResult;
  16.  
    //读入入完成后删除指针
  17.  
    delete configIniRead;
  18.  
    return a.exec();
  19.  
    }

 

程序运行截图:

 

转自:https://blog.csdn.net/qiurisuixiang/article/details/7760828

你可能感兴趣的文章
Spring_Aop_(二)
查看>>
MySQL execute dynamic sql script.
查看>>
Collection框架
查看>>
Serv U 占用80端口
查看>>
20190320-每周刷题
查看>>
迁移EXT4
查看>>
python 基础笔记十二 - 模块&第三方模块安装
查看>>
AV Foundation 学习
查看>>
WP7上HttpWebRequest的用法
查看>>
3:16: 错误: expected declaration specifiers or ‘...’ before string constant
查看>>
大白话5分钟带你走进人工智能-第二十五节决策树系列之信息增益和信息增益率(4)...
查看>>
【datamining】OLTP,OLAP,维度数据库,事实表,维度表、星形和雪花模式、数据立方体、概念分层...
查看>>
PIE SDK 距离分类和最大似然分类
查看>>
Add、Commit和Push
查看>>
NPInter数据集的奇葩标号的出坑秘籍
查看>>
Angular2地图的使用、地图画线、高德底图切换、图标变换等
查看>>
opencv Mat.at
查看>>
Android中android:visibility的3中属性的剖析
查看>>
SharePoint 客户端对象模型 多选查阅项赋值
查看>>
spring前两天复习
查看>>