QT - gui CONFIG c11 console CONFIG - app_bundle SOURCES main.cpp#include QCoreApplication #include QSettings #include QDebug int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 使用源码目录的绝对路径 QString configPath d:/QtCode/IniTest/config.ini; qDebug() configPath: configPath; QSettings settings(configPath, QSettings::IniFormat); // 调试检查文件是否找到 if (settings.allKeys().isEmpty()) { qDebug() 警告: 未读取到任何配置项请检查文件路径; } qDebug() 方式一: allKeys 遍历所有键值 ; const QStringList allKeys settings.allKeys(); for (const QString key : allKeys) { qDebug().noquote() key settings.value(key).toString(); } qDebug() \n 方式二: 按 section/key 读取 ; qDebug() user/name settings.value(user/name).toString(); qDebug() user/age settings.value(user/age).toInt(); qDebug() server/host settings.value(server/host).toString(); qDebug() server/port settings.value(server/port).toInt(); qDebug() server/notExist (默认值) settings.value(server/notExist, 12345).toInt(); qDebug() logging/enabled settings.value(logging/enabled).toBool(); qDebug() \n 方式三: beginGroup 分组读取 ; settings.beginGroup(server); qDebug() host settings.value(host).toString(); qDebug() port settings.value(port).toInt(); qDebug() timeout settings.value(timeout).toInt(); settings.endGroup(); qDebug() \n 方式四: 遍历所有分组 ; const QStringList groups settings.childGroups(); for (const QString group : groups) { qDebug() section: group; } return 0; }config.ini[user] name张三 age25 emailzhangsanexample.com [server] host192.168.1.100 port8080 timeout3000 [logging] enabledtrue leveldebug读到了但是中文部分是乱码。修改程序QSettings settings(configPath, QSettings::IniFormat); settings.setIniCodec(UTF-8);可以了继续修改使用相对路径QString configPath QCoreApplication::applicationDirPath() /config.ini; qDebug() configPath: configPath;构造函数QSettings(config.ini, QSettings::IniFormat)指定文件路径和格式。不指定格式时默认用注册表Windows或 plistmacOS读 INI 必须显式指定QSettings::IniFormat。键名规则INI 中的[section]变成section/key形式的扁平键如[user]下的name用user/name访问。返回 QVariantvalue()返回QVariant需要.toString()、.toInt()、.toBool()等转换。QSettings 会自动把true/false识别为布尔、纯数字识别为数值。提问如果组名为General,这时候我就读不到信息了为什么[General] localAddress192.168.68.1 peerAddress192.168.68.100 peerPort1234 localPort1235qDebug() localAddress settings.value(General/localAddress).toString();打印:localAddress 这是 QSettings 的一个特殊行为[General]是 QSettings 的保留组名。原因QSettings 把 INI 文件中的[General]组视为顶层无组前缀。也就是说[General] name张三 age25在 QSettings 看来这两个键没有组前缀读取方式是settings.value(name); // 正确 settings.value(General/name); // 错误读不到测试:const QStringList allKeys settings.allKeys(); for (const QString key : allKeys) { qDebug().noquote() key settings.value(key).toString(); }组为General时:localAddress 192.168.68.1localPort 1235peerAddress 192.168.68.100peerPort 1234组为info时:info/localAddress 192.168.68.1info/localPort 1235info/peerAddress 192.168.68.100info/peerPort 1234总结[General]是 QSettings 的约定等同于不属于任何组的顶层键如果你需要统一用组名/键名的方式访问避免使用General作为组名改用其他名称如[common]、[default]、[config]等即可
企业数字化 ERP 产品动态
相关推荐
3步搞定wordpress汉化后台完整流程拒绝英文劝退 3步搞定wordpress汉化后台完整流程拒绝英文劝退 域名注册填了个错,服务器配置看天书,打开WordPress后台满屏英文?别慌,这坑我踩过,你也别急着放弃。很多站长觉得建站难在代码,其实难在“看不懂”和“怕弄坏”。今天不聊虚的,直接拆… · 2026/9/27 6:39:42
交通车辆目标检测数据集:从压缩包到YOLO训练管线全流程 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 6:39:24
3个实战案例拆解wordpress页面设置:搞定域名服务器不踩坑 3个实战案例拆解wordpress页面设置:搞定域名服务器不踩坑 很多老板盯着后台看半天,发现 wordpress页面设置 里那些选项根本看不懂。更头疼的是,后台配置明明保存了,前台却打不开,或者提示域名解析错误。… · 2026/9/27 6:39:18
好用的全屋定制公司 在上海找全屋定制,很多业主都有过类似的经历:跑遍大大小小的门店,报价单看得眼花缭乱,好不容易定下来,安装时却发现板材不对版、封边粗糙、柜体与墙体之间留着尴尬的缝隙。更让人头疼的是,出了问题找售后&a… · 2026/9/27 7:20:25
用 STREAM 内存带宽基准检验 wasm3:构建、运行与解读 解释器嵌入式语言运行时 【免费下载链接】wasm3 🚀 A fast WebAssembly interpreter and the most universal WASM runtime 项目地址: https://gitcode.com/gh_mirrors/wa/wasm3 点击查看 免费下载 本篇文章围绕仓库 test/wasi/stream/ 目录下的 STREAM… · 2026/9/27 7:20:19
Wand-Enhancer:如何开启 5 个 Wand(WeMod)增强功能并实现手机控制 Wand-Enhancer:如何开启 5 个 Wand(WeMod)增强功能并实现手机控制 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer … · 2026/9/27 7:20:19
Infra 与全栈协同设计(Co-design)范式体系 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 7:20:19
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01