当前位置: 首页 > news >正文

Qt读写配置(ini)文件

本文介绍Qt读写配置(ini)文件。

1.配置文件(ini)简介

配置文件(ini)也叫ini文件(Initialization File),即初始化文件。它由节名键名键值构成。其文件构成如下:

[Student]
name=Bob
sex=male
age=16

其中,

1)[Student]为节名

2)name为键名,Bob为键值,它俩由“=”连接起来组成键值对

2.使用QSetting类读写配置文件

Qt采用QSetting类对配置(ini)文件进行操作(建立,读,写)。

1)建立

指定文件名(需给出路径,相对路径或绝对路径)即可,代码如下:

QSettings *settings;
settings = new QSettings("Config.ini", QSettings::IniFormat);

2)读操作

读操作指定节名和键名即可,因value返回的是QVariant类型。需要根据实际使用情况转换为相应的类型,如这里转换成了String类型。代码如下:

settings->value("Student/name").toString();

3)写操作

写操作有2种方法,一种直接指定节名和键名,并给出键值即可。另一种可以先指定节名,然后再根据键名给出键值即可。

a)方法1

直接指定节名和键名,代码如下:

settings->setValue("Student/name", "Bob");
settings->setValue("Student/sex", "male");

b)方法2

先指定节名,然后再根据键名,给出键值,代码如下:

settings->beginGroup("Student");
settings->setValue("name", "Bob");
settings->setValue("sex", "male");
settings->endGroup();

3.参考源代码

这里给出一个以字符串为写入和读出的类,参考代码如下:

1)"Config.h"文件

#ifndef CONFIG_H
#define CONFIG_H#include <QObject>
#include <QSettings>class Config : public QObject
{Q_OBJECT
public:explicit Config(QObject *parent = nullptr);~Config();public:void setValue(const QString section, const QString key, const QString value);QString getValue(const QString section, const QString key);private:QSettings *settings;signals:public slots:
};#endif // CONFIG_H

2)"Config.cpp"文件

#include "config.h"Config::Config(QObject *parent) : QObject(parent)
{settings = new QSettings("Config.ini", QSettings::IniFormat);
}Config::~Config()
{delete settings;
}void Config::setValue(const QString section, const QString key, const QString value)
{settings->beginGroup(section);settings->setValue(key, value);settings->endGroup();
}QString Config::getValue(const QString section, const QString key)
{QString path = QString("%1/%2").arg(section).arg(key);return settings->value(path).toString();
}

总结,本文介绍了Qt读写配置(ini)文件。

http://www.lryc.cn/news/415751.html

相关文章:

  • Python笔试面试题AI答之面向对象(2)
  • Python学习计划——12.1选择一个小项目并完成
  • uniapp 多渠道打包实现方案
  • 请你学习:前端布局3 - 浮动 float
  • PyCharm 2024.1 总结和最新变化
  • RGB红绿灯——Arduino
  • 浅谈用二分和三分法解决问题(c++)
  • Cocos Creator2D游戏开发(9)-飞机大战(7)-爆炸效果
  • 终于有人把华为认证全部说清楚了
  • 【知识】pytorch中的pinned memory和pageable memory
  • 【系统架构设计】数据库系统(五)
  • 如何对人工智能系统进行测试|要点,方法及流程
  • CVE-2023-37569~文件上传【春秋云境靶场渗透】
  • MySQL简介 数据库管理与表管理
  • PHP 函数性能优化的技巧是什么?
  • 小程序支付(前端)
  • 开发一个自己的VSCode插件
  • Milvus 向量数据库进阶系列丨构建 RAG 多租户/多用户系统 (上)
  • 前缀和(更新中)
  • 记录一次单例模式乱用带来的危害。
  • 外卖项目day14(day11)---数据统计
  • 养猫科普!牙口不好的猫咪怎么选粮?好吃易消化主食罐推荐
  • 力扣刷题之3143.正方形中的最多点数
  • 【更新2022】省级经济高质量发展指标体系测度 含代码 2000-2022
  • 缓冲流练习
  • 自己履行很多的话语,依旧按照这个方式进行生活
  • 交通预测数据文件梳理:METR-LA
  • 按钮类控件
  • opencascade AIS_ViewController源码学习 视图控制、包含鼠标事件等
  • 拉削基础知识——拉床的类型及特点