使用QSettings操作INI配置文件
环境:Win10+VS2015+Qt5.9.8
C++代码:
// 配置文件:可执行路径\config\main.ini,如果没有config子目录会自动创建 QSettings settings(QString("%1%2").arg(QCoreApplication::applicationDirPath(), "\\config\\main.ini"), QSettings::Format::IniFormat); settings.clear(); // 清除已有的所有配置,慎用 settings.setValue("Key1", "Value1"); // 缺省Section是[General] settings.setValue("Key2", true); settings.setValue("Key3", "中文"); // 中文保存编码值\x4e2d\x6587 settings.setValue("Section1/Key1", "Value1"); settings.setValue("Section1/Key2", true); settings.setValue("Section1/Key3", "中文"); settings.setValue("Section2/Key1", "Value1"); settings.setValue("Section2/Key2", true); settings.setValue("Section2/Key3", "中文,Eng,\"Eng\""); QString s = settings.value("Key3").toString(); LOG_INFO("值:" << s.toStdString().c_str()); // 存取列表 QList<QVariant> list1 = { 1, "A,B", "我,你" }; settings.setValue("Section2/Key4", QVariant(list1)); QList<QVariant> list2 = settings.value("Section2/Key4").toList(); // 存取键值对 QMap<QString, QVariant> map1 = { { "mapkey1", 1 },{ "mapkey2", "哈哈" } }; settings.setValue("Section2/Key5", QVariant(map1)); QMap<QString, QVariant> map2 = settings.value("Section2/Key5").toMap();
对应INI文件:
[General] Key1=Value1 Key2=true Key3=\x4e2d\x6587 [Section1] Key1=Value1 Key2=true Key3=\x4e2d\x6587 [Section2] Key1=Value1 Key2=true Key3="\x4e2d\x6587,Eng,\"Eng\"" Key4=1, "A,B", "\x6211,\x4f60" Key5=@Variant(\0\0\0\b\0\0\0\x2\0\0\0\xe\0m\0\x61\0p\0k\0\x65\0y\0\x32\0\0\0\n\0\0\0\x4T\xc8T\xc8\0\0\0\xe\0m\0\x61\0p\0k\0\x65\0y\0\x31\0\0\0\x2\0\0\0\x1)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器