QT使用QSettings读写ini初始化文件

QT 专栏收录该内容
7 篇文章 0 订阅

ini文件主要是由节、键、值来组成

[x64_pro]   //用中括号括起来,这就是节  接下面就键和值,键和值用等号连接
APPID=qweqweqwlkeq
SDKKEY=dasdasdasdasdas
ACTIVE_KEY=553
rgb_live_threshold=0.75
ir_live_threshold=0.7
rgb_camera_id=1
ir_camera_id=0

使用QSettings类来写入配置文件

/************************方法一***************************/
// 根据ini文件路径新建QSettings类
QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);
 //通过setValue函数将键值对放在相对于的节下面
m_IniFile->setValue( "节名" + "/" + "键名",  "键对应的值");

/**************************方法二**********************************/
// 根据ini文件路径新建QSettings类
QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);

m_IniFile ->beginGroup("节名");     // 设置当前节名,代表以下的操作都是在这个节中
m_IniFile->setValue( "键名",  "键对应的值"); // 因为上面设置了节了,这里不在需要把节名写上去
m_IniFile.endGroup();                   // 结束当前节的操作

使用QSettings类来读取配置文件

// 根据ini文件路径新建QSettings类
QSettings  m_IniFile = new QSettings("ini文件的路径", QSettings::IniFormat);

//通过Value函数将节下相对应的键值读取出来
QString value = m_IniFile->Value( "节名" + "/" + "键名").toString;

读取值并转成char* 存储

//读配置文件
void Widget::ReadSetting()
{
	//读取值并转成char* 存储   config是一个结构体 里面全是char*
    QSettings *configIni = new QSettings("./setting.ini", QSettings::IniFormat);
    QByteArray ba;

    //节tag + 键tag  返回值
    QString strTag= configIni->value("tag/tag").toString();

    //节strTag+键 返回值
    ba=configIni->value(strTag+"/APPID").toString().toLatin1();
    memcpy(config.appID,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/SDKKEY").toString().toLatin1();
    memcpy(config.sdkKey,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/ACTIVE").toString().toLatin1();
    memcpy(config.activeKey,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/irCameraId").toString().toLatin1();
    memcpy(config.irCameraId,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/rgbCameraId").toString().toLatin1();
    memcpy(config.rgbCameraId,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/irLiveThreshold").toString().toLatin1();
    memcpy(config.irLiveThreshold,ba.data(),strlen(ba.data()));

    ba=configIni->value(strTag+"/rgbLiveThreshold").toString().toLatin1();
    memcpy(config.rgbLiveThreshold,ba.data(),strlen(ba.data()));

    delete configIni;
    configIni =nullptr;
}
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值