博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QT学习之如何读写配置文件(QSettings)
阅读量:3782 次
发布时间:2019-05-22

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

概述

​ 有时候,我们需要根据本地的配置文件,去配置我们的程序,在其他语言中,可能需要自己去写读写文件的逻辑,而在QT中,就直接提供了QSettings类,简化了我们的操作!

文章目录

平台

  • ubuntu
  • QT5.9

一.配置文件长什么样子?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPVXEf3d-1613624847860)(/image/配置文件.png)]

  • 图中带[] 以下为一个group

  • 以键值对的形式存储,等号左边是key,右边是value

二.如何读写配置文件

  • 主要使用两个函数
    • QVariant value(const QString &key, const QVariant &defaultValue = QVariant())
      • 第一个参数是键
      • 第二个参数是默认值,也就是说如果没有读到值,就返回该默认值,如填-1 ,就返回-1
      • 返回值
    • void setValue(const QString &key, const QVariant &value)
      • 第一个参数是键
      • 第二个参数是值

以下代码可创建出如上述图片所写配置文件:

QSettings *settings = new QSettings("/home/cai/qt_pro/Qsettings/QsettingsTest/setting.ini",QSettings::IniFormat);    //Read    settings->beginGroup("QT");    QString LEARN_OBJECT = settings->value("LEARN_OBJECT","").toString();    double VERSION = settings->value("QT_VERSION",-1).toDouble();    qDebug()<<"LEARN_OBJECT="<
<
setValue("CSDN_TITLE","QingXun"); settings->endGroup(); settings->beginGroup("OTHER"); settings->setValue("CSDN_DESCRIPTION","Share My Learning exprience"); settings->endGroup();

1.头文件包含

#include 

2. 配置文件不存在就创建

QSettings *settings = new QSettings("/home/cai/qt_pro/Qsettings/QsettingsTest/setting.ini",QSettings::IniFormat);

3. 读配置文件

//注意:需要从group中读出,否则将读不出来    settings->beginGroup("QT");    QString LEARN_OBJECT = settings->value("LEARN_OBJECT","").toString();    double VERSION = settings->value("QT_VERSION",-1).toDouble();    qDebug()<<"LEARN_OBJECT="<
<

4. 写配置文件

settings->beginGroup("MAIN");    settings->setValue("CSDN_TITLE","QingXun");    settings->endGroup();    settings->beginGroup("OTHER");    settings->setValue("CSDN_DESCRIPTION","Share My Learning exprience");    settings->endGroup();

3.测试结果

在这里插入图片描述

项目代码已上传,欢迎下载!
后续也将分享QT的学习,欢迎点赞,关注,赞赏我!

转载地址:http://aumvn.baihongyu.com/

你可能感兴趣的文章
将视频转存成图片小代码
查看>>
ImportError: cannot import name ‘Line 解决方法
查看>>
Ubuntu 创建/删除虚拟环境
查看>>
deepsort算法中绘制轨迹部分的代码【记录】
查看>>
C++程序设计作业--坦克大战[分享]
查看>>
Uuntu20.04出现“qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in...已放弃 (核心已转储)”问题解决记录
查看>>
Linux系统常用的基本操作记录
查看>>
ZeroDivisionError: integer division or modulo by zero解决记录
查看>>
使用软链接放置数据集
查看>>
wx-charts折线统计图的实现(以每日体重展示为例)
查看>>
日志库EasyLogging++学习系列(5)—— 辅助配置功能
查看>>
日志库EasyLogging++学习系列(6)—— 日志记录器
查看>>
日志库EasyLogging++学习系列(7)—— 记录方式详解
查看>>
日志库EasyLogging++学习系列(8)—— Verbose日志详解
查看>>
日志库EasyLogging++学习系列(9)—— 性能跟踪功能
查看>>
日志库EasyLogging++学习系列(10)—— 日志文件滚动
查看>>
日志库EasyLogging++学习系列(11)—— 共享日志库
查看>>
MFC隐藏和显示一个控件的方法
查看>>
在MFC中使用Static text控件显示消息
查看>>
mfc 怎样动态设置static text 的可见属性
查看>>