新闻详情

新闻详情

首页 / 资讯中心 / 详情

使用QSetting读取ini中的信息并打印

发布时间:2026/9/27 6:40:04来源:尧图网络
使用QSetting读取ini中的信息并打印
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]等即可
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI Agent的Web渗透作战手册:ctf-skills的ctf-web技能快速参考(SQLi/XSS/SSTI/SSRF/JWT实战技巧) 2026/9/27 7:32:13

AI Agent的Web渗透作战手册:ctf-skills的ctf-web技能快速参考(SQLi/XSS/SSTI/SSRF/JWT实战技巧)

AI Agent的Web渗透作战手册:ctf-skills的ctf-web技能快速参考(SQLi/XSS/SSTI/SSRF/JWT实战技巧) 【免费下载链接】ctf-skills Agent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, foren…

阅读更多 →
〖共创稿事节〗HarmonyOS 7 新特性实战(10):普通 GLB 模型的加载、视角控制与注释入口 2026/9/27 7:32:13

〖共创稿事节〗HarmonyOS 7 新特性实战(10):普通 GLB 模型的加载、视角控制与注释入口

先验证普通网格路径 API 26 模拟器与 HBN-AL80 真机已经运行普通 GLB 教学样本:模型共 8 个节点、64 个三角形,文件只有数 KB。它由项目脚本生成,是抽象的带角、带翼几何造型,不是古代神兽的考据复原,也不是 3DGS 重建…

阅读更多 →
避开论文四大降重陷阱,用智一刻轻松通过查重审核 2026/9/27 7:32:13

避开论文四大降重陷阱,用智一刻轻松通过查重审核

每年论文查重季,导师群里最常流传的奇葩笑话,莫过于各种被无脑降重工具改出来的“外星人病句”。 把“计算机技术飞速发展”改成“电脑机器迅猛滋长”,把“激发员工工作积极性”改成“撺掇打工人员干活欲望”……很多同学看着查重率确实降了…

阅读更多 →
北京网站建设手机号别乱填,这3个免费工具保你安全 2026/9/27 7:32:07

北京网站建设手机号别乱填,这3个免费工具保你安全

北京网站建设手机号别乱填,这3个免费工具保你安全 改个需求建站公司拖一周,最惨的是你连个靠谱的联系方式都找不到,只能对着合同上那个模糊的手机号干瞪眼。很多新手朋友在找北京网站建设服务时,往往只盯着报价和效果图,却忽略了最关键的一环:验证对方…

阅读更多 →
日志系统三个盲区复盘:48.2MB 降到 62MB、时区错乱与按时刻筛选捞错行 2026/9/27 7:32:07

日志系统三个盲区复盘:48.2MB 降到 62MB、时区错乱与按时刻筛选捞错行

背景:六小时排查,卡在"没有证据"这一环 事情发生在一个普通工作日的下午。有人反馈:某批推送消息在两点到三点之间集体延迟,部分用户到四点多才收到。不算严重故障,但用户能感知到,所以要给出说明…

阅读更多 →
软考信息安全工程师备考00-相关的法律法规 2026/9/27 7:32:06

软考信息安全工程师备考00-相关的法律法规

《中 华 人 民 共 和 国 网 络 安 全 法》施行时间(2017年6月1日)2017年下半年综合知识6868、 2017 年 6 月 1 日 , ( ) 开 始 施 行 。A.中 华 人 民 共 和 国 计 算 机 信 息 系 统 安 全 保 护 条 例B.计 算 机 信 …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉