news 2026/9/11 5:28:41

QSettings + INI 笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QSettings + INI 笔记

QSettings + INI 笔记

一、初始化

// 创建/打开INI配置文件QSettingssettings("config.ini",QSettings::IniFormat);

二、基础读写

操作代码示例说明
写入settings.setValue("组/键", 值);支持int/bool/QString等
读取(带默认值)settings.value("组/键", 默认值).toXXX();需指定类型(toInt/toString等)
// 示例:读写settings.setValue("Window/width",800);// 写intw=settings.value("Window/width",1024).toInt();// 读

三、使用技巧

1. 分组管理

settings.beginGroup("Window");// 进入分组settings.setValue("width",800);settings.endGroup();// 退出分组

2. 数组存储

// 写数组settings.beginWriteArray("recentFiles");for(inti=0;i<files.size();i++){settings.setArrayIndex(i);settings.setValue("path",files[i]);}settings.endArray();// 读数组intsize=settings.beginReadArray("recentFiles");for(inti=0;i<size;i++){settings.setArrayIndex(i);QString p=settings.value("path").toString();}settings.endArray();

3. 配置文件路径

// 1. 应用目录(便携):./config.ini// 2. 系统配置目录(标准):QString path=QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation)+"/config.ini";// 3. 绝对路径:D:/app/config.ini

四、示例

classAppConfig{public:staticAppConfig&instance(){staticAppConfig c;returnc;}voidload(){// 加载配置QSettingss("config.ini",QSettings::IniFormat);windowW=s.value("Window/width",800).toInt();autoSave=s.value("General/autosave",true).toBool();}voidsave(){// 保存配置QSettingss("config.ini",QSettings::IniFormat);s.setValue("Window/width",windowW);s.setValue("General/autosave",autoSave);s.sync();// 立即写入}// 配置项intwindowW=800;boolautoSave=true;private:AppConfig()=default;// 单例私有化构造};

五、常用操作

settings.contains("Window/width");// 检查键是否存在settings.remove("Window/width");// 删除键/分组settings.allKeys();// 获取所有键settings.clear();// 清空所有配置settings.sync();// 立即保存(默认析构时保存)

六、注意事项

  1. 路径分隔用/,跨平台通用
  2. 中文直接支持UTF-8,无需额外处理
  3. 读取时必须指定类型(toInt/toString等)

总结

  1. 核心初始化:QSettings settings("config.ini", QSettings::IniFormat)
  2. 核心操作:setValue()写、value(键, 默认值).toXXX()
  3. 关键技巧:分组管理、数组存储、单例封装,sync()立即保存
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 16:29:49

开箱即用!ccmusic-database音乐分类镜像的完整使用指南

开箱即用&#xff01;ccmusic-database音乐分类镜像的完整使用指南 1. 为什么你需要这个音乐流派分类工具 你是否遇到过这样的场景&#xff1a;整理了上千首音乐&#xff0c;却对其中大量文件的流派归属一无所知&#xff1f;或者在做音乐推荐系统时&#xff0c;需要快速为新入…

作者头像 李华
网站建设 2026/8/29 7:46:44

Chandra精彩案例集:用私有化AI完成写故事、解问题、学英语的真实截图

Chandra精彩案例集&#xff1a;用私有化AI完成写故事、解问题、学英语的真实截图 1. 私有化AI助手的独特价值 在当今数据安全日益重要的时代&#xff0c;Chandra AI聊天助手提供了一种全新的解决方案。它不像常见的云端AI服务那样需要将您的数据上传到第三方服务器&#xff0…

作者头像 李华
网站建设 2026/9/4 0:00:18

自定义 WooCommerce 结账页面翻译的艺术

在电子商务的世界里,用户体验(UX)是至关重要的。特别是对于那些不以英语为母语的用户来说,提供本地化的翻译能够极大地提升他们的购物体验。WooCommerce,作为WordPress最流行的电商插件,提供了强大的本地化功能,但有时我们需要对某些特定页面进行更细致的控制。今天,我…

作者头像 李华
网站建设 2026/9/3 13:17:07

ZXPInstaller:Adobe扩展管理的拖放式解决方案

ZXPInstaller&#xff1a;Adobe扩展管理的拖放式解决方案 【免费下载链接】ZXPInstaller Open Source ZXP Installer for Adobe Extensions 项目地址: https://gitcode.com/gh_mirrors/zx/ZXPInstaller 在Adobe Extension Manager停用后&#xff0c;设计师和创意工作者面…

作者头像 李华