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

QT 的 QSettings 读写 INI 文件的示例

在Qt中,QSettings 类提供了一种便捷的方式来存储和访问应用程序的设置,这些设置可以存储在多种格式的文件中,包括INI、Windows注册表(仅Windows平台)、XML和JSON等。以下是一些使用 QSettings 读写INI文件的示例。

写入INI文件

假设我们想要将一些设置保存到名为 settings.ini 的INI文件中,可以这样做:

#include <QCoreApplication>
#include <QSettings>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 创建一个QSettings对象,指定INI文件的名称和格式QSettings settings("settings.ini", QSettings::IniFormat);// 写入一些设置settings.setValue("User/Name", "John Doe");settings.setValue("User/Age", 30);settings.setValue("User/Email", "john.doe@example.com");// 输出调试信息,确认设置已保存(注意:这不会显示INI文件的内容)qDebug() << "Settings saved.";return a.exec();
}

在这个例子中,我们创建了一个 QSettings 对象,并指定了INI文件的名称(settings.ini)和格式(QSettings::IniFormat)。然后,我们使用 setValue() 方法写入了三个配置项。这些配置项将被保存到 settings.ini 文件中,如下所示(大致结构,具体格式可能略有不同):

[User]
Name=John Doe
Age=30
Email=john.doe@example.com

读取INI文件

接下来,假设我们想要从刚才保存的INI文件中读取这些设置,可以这样做:

#include <QCoreApplication>
#include <QSettings>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 创建一个QSettings对象,指定INI文件的名称和格式QSettings settings("settings.ini", QSettings::IniFormat);// 读取设置QString name = settings.value("User/Name", "Unknown").toString();int age = settings.value("User/Age", 0).toInt();QString email = settings.value("User/Email", "Unknown").toString();// 输出读取到的设置qDebug() << "Name:" << name;qDebug() << "Age:" << age;qDebug() << "Email:" << email;return a.exec();
}

在这个例子中,我们再次创建了一个 QSettings 对象,并指定了INI文件的名称和格式。然后,我们使用 value() 方法读取了之前保存的配置项。value() 方法的第二个参数是默认值,如果在INI文件中找不到指定的键,则会返回这个默认值。最后,我们使用 qDebug() 输出了读取到的设置。

请注意,虽然上面的代码示例使用了 QCoreApplication 作为应用程序的入口点,但 QSettings 类的使用并不限于GUI应用程序。它同样适用于控制台应用程序和其他类型的Qt应用程序。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 前后端分离时代的SEO实践经验
  • facebook广告效果下降,可能是进入了疲劳期
  • 数据洞察力的魔法:自然语言处理在数据分析中的应用
  • ASP.NET Core Web API中实现缓存
  • Java设计模式-策略模式
  • 无人机培训机构培训计划详解
  • Excel VBA批量获取文件夹内文件名及重命名文件教程
  • 音频进阶学习一——模拟信号和数字信号
  • 8.6.数据库基础技术-数据库的控制
  • LVS理论知识
  • 软件设计之MySQL(1)
  • Oracle(62)什么是内存优化表(In-Memory Table)?
  • 【数据结构】在链式存储结构上建立一棵二叉树的算法
  • 日撸Java三百行(day22:二叉树的存储)
  • Python | Leetcode Python题解之第335题路径交叉
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【css3】浏览器内核及其兼容性
  • angular2 简述
  • C++11: atomic 头文件
  • create-react-app做的留言板
  • CSS 三角实现
  • JavaScript 基础知识 - 入门篇(一)
  • js操作时间(持续更新)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP 的 SAPI 是个什么东西
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • v-if和v-for连用出现的问题
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 看域名解析域名安全对SEO的影响
  • 深入 Nginx 之配置篇
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 项目管理碎碎念系列之一:干系人管理
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​io --- 处理流的核心工具​
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • (0)Nginx 功能特性
  • (BFS)hdoj2377-Bus Pass
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (九)c52学习之旅-定时器
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (转)Scala的“=”符号简介
  • (转)大型网站的系统架构
  • (轉)JSON.stringify 语法实例讲解
  • .Net core 6.0 升8.0
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 依赖注入和配置系统
  • .NET中winform传递参数至Url并获得返回值或文件
  • /dev/sda2 is mounted; will not make a filesystem here!
  • :如何用SQL脚本保存存储过程返回的结果集