VS2019+QT中ini、cfg格式文件设置

一:概要

` 上位机自动化软件开发中,对于机台参数通常需要以Ini格式文件保存在本地,即程序运行时,可在界面将参数保存至本地,程序初始化时,可将本地ini文件中参数加载到机台中。
本文以VS2019+QT为开发环境,对Ini文件、cfg文件读写方法简单描述,由于cfg文件与ini文件只是后缀名不同,因此主要以ini文件为例,简述ini文件操作。

二:INI文件格式介绍

本地新建一个记事本文件,将后缀改为***.ini***格式,即可生成ini文件。
文件内容由两部分组成:节点、节点下参数
节点格式:[名称],例如[config]
各节点在文件中唯一,即节点名称不能重复
节点下参数格式:键值对形式存在(key=value),例如UserID=123456
同一节点下,键(key)不可重复,例如节点[1]下,不可存在两个相同的键UserID,倘若节点[1]下已经存在,节点[2]下,可以创建UserID
格式范例如下:

[MTF]
userID=12
userName=xiaowang
useradress=china

[config]
userID=13
MTFUpStd=1

如果需要对文件中参数做说明,可利用//批注,格式如下

//用户信息
//!userID 用户ID
//!userName用户姓名
//!useradress用户地址
[MTF]
userID=12
userName=xiaowang
useradress=china

[config]
userID=13
MTFUpStd=1

三:ini文件简单操作

QT中使用QSettings类读写ini文件,因此在需要读写的h文件或者cpp文件中添加#include 。
常用格式:QSettings cfg(ini文件位置, QSettings::IniFormat);
读:value
写:setValue

3.1 读ini文件

采用value方法,简单读取如下:

const QString SysConfigPath = "./Config/config.ini";	//ini文件路径,此处为相对路径
QSettings cfg(SysConfigPath, QSettings::IniFormat);
//方式一:
cfg.beginGroup("MTF");		//beginGroup与endGroup配对使用
QString userID=cfg.value("userID");
QString userName=cfg.value("userName");
cfg.endGroup();
//方式二:
QString userName=cfg.value("/MTF/userName");

上述方法可将本地ini文件中的参数读取到程序中

3.2 写ini文件

采用setValue方法,简单写入如下:

const QString SysConfigPath = "./Config/config.ini";	//ini文件路径,此处为相对路径
QSettings cfg(SysConfigPath, QSettings::IniFormat);
QString userName=cfg.setValue("MTF/userName",111);

上述方法可将程序中需要修改的ini文件参数保存至本地ini文件中

3.3 获取某一节点下所有键

方法:childKeys,案例如下:

const QString SysConfigPath = "./Config/config.ini";	//ini文件路径,此处为相对路径
QSettings cfg(SysConfigPath, QSettings::IniFormat);
cfg.beginGroup("MTF");		//beginGroup与endGroup配对使用
QStringList MTF= cfg.childKeys();	//使用allKeys函数,获取当前设置中所有键的列表
for (auto iter : MTF)
{
	QString product = cfg.value(iter).toString();
	if()
	{
		//自行操作
	}
}
cfg.endGroup();
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值