Qt中读写配置文件

INI文件格式介绍:

INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。

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

除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。

一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。

INI文件被用来对操作系统或特定程序初始化或进行参数设置。

 

文件格式

节(section)

节用方括号括起来,单独占一行,

例如:

[section]

键(key)

键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:

name=value

QT读写INI文件

添加头文件:

#include<QSettings.h>
#include<qDebug.h>

 

Qt4.0一个非常有用的类QSettings,在windows平台,它提供了ini文件读写,注册表读写的功能。而且使用也非常简单。

QSettings::Format有两种:

QSettings::NativeFormat在windows平台可以读写windows注册表;

QSettings::IniFormat可以读写ini格式的配置文件。

例:

[General]
name=aaa
ip="192.168.1.10"
auto_con=1
speed=50
joints=0.000,-13.959,2.2,83.3,0.000,18.000,-30.000
tcp_offset= 133.4,0.0,0.0,0.0,0.0,-10.0

默认 section 为 General

    QSettings setting("config.ini",QSettings::IniFormat);
    QString name =setting.value("name").toString();
    int speed =setting.value("speed").toInt();

    qDebug() << name;
    qDebug() << speed;

输出:

"aaa"

50

读取中间有 逗号或空格key

joints=0.000,-13.959,2.2,83.3,0.000,18.000,-30.000

    setting.setIniCodec("utf-8");// 解决乱码
    QStringList list = setting.value("joints").toStringList();
     qDebug() << list;

输出:("0.000", "-13.959", "2.2", "83.3", "0.000", "18.000", "-30.000")

读 tcp_offset= "133.4,0.0,0.0,0.0,0.0,-10.0" 字符串,为逗号做分隔

     QStringList tcp_offset = setting.value("tcp_offset").toString().split(",");
       qDebug() << tcp_offset;

输出:("133.4", "0.0", "0.0", "0.0", "0.0", "-10.0")

tcp_offset= "133.4,0.0,0.0,0.0,0.0,-10.0"

使用非默认 section

[conn]
name=aaa
ip="192.168.1.10"
auto_con=1
speed=50
joints=0.000,-13.959,2.2,83.3,0.000,18.000,-30.000
tcp_offset= 133.4,0.0,0.0,0.0,0.0,-10.0
    QSettings setting("config.ini",QSettings::IniFormat);
    setting.setIniCodec("utf-8");// 解决乱码
    QString name =setting.value("conn/name").toString();
    int speed =setting.value("conn/speed").toInt();

    qDebug() << name;
    qDebug() << speed;

输出:

"aaa"

50

写ini 文件:

    //Qt中使用QSettings类读写ini文件
    //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
    QSettings *configIniWrite = new QSettings("config.ini", QSettings::IniFormat);
    //向ini文件中写入内容,setValue函数的两个参数是键值对
    //向ini文件的第一个节写入内容,ip节下的第一个参数
    configIniWrite->setValue("/con/ip", "192.168.0.1");
    //向ini文件的第一个节写入内容,ip节下的第二个参数
    configIniWrite->setValue("/con/name", "aa");
    //向ini文件的第二个节写入内容,port节下的第一个参数
    configIniWrite->setValue("port/open", "2222");
    configIniWrite->setValue("port/ports", "2222,111,33,444");
    //写入完成后删除指针
    delete configIniWrite;

生成文件 config.ini

[con]
ip=192.168.0.1
name=aa

[port]
open=2222
ports="2222,111,33,444"

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值