一 、QSettings介绍:

用户通常希望应用程序记住其设置。在windows中,这些设置保存在注册表中,ios在属性文件列表中,而unix,在缺乏标准的情况下,其存储在ini文本中。QSettings有两种存储格式:QSettings::NativeFormat(在windows平台可读写注册表)、QSettings::IniFormat(读写ini文件)、QSettings::InvalidFormat

QSettings使用户可以保存应用程序设置,并且支持用户自定义存储格式。QSetings API基于QVariant,因而你可以存储却大部分类型的数据。如果你需要一个非持久性的存储,推荐使用QMap.

二、QSettings常用API:创建QSettings对象QSettings(const QString & organization, const QString & application = QString(), QObject * parent = 0)

创建一个QSettings对象,必须传入应用程序名称,及公司名称。如果你的设置来自程序中不同的地方,你需要通过QCoreApplication::setOrganizationName() and QCoreApplication::setApplicationName()指定程序名称和公司名称,并且使用默认的构造函数QSettings settings。

QCoreApplication::setOrganizationName("MySoft");

QCoreApplication::setOrganizationDomain("mysoft.com");

QCoreApplication::setApplicationName("Star Runner");

...

QSettings settings;写入数据settings.setValue("editor/wrapMargin", 68);

每一条信息包含一个key和一个value,value类型为QVariant。读取数据int margin = settings.value("editor/wrapMargin").toInt();

如果key不存在,则返回 null QVariant(可以被转化为整数0)

读取数据的时候,可以传递第二个参数,给定新的value:int margin = settings.value("editor/wrapMargin", 80).toInt();其他

判断key是否存在: contains(const QString & key) const

移除某项:remove(const QString & key)

得到所有键:QStringList QSettings::allKeys()

三、使用示例读写注册表

实例化对象时,设置存储格式为:QSettings::NativeFormat,利用'/'来填写要读写的注册表:

QSetings settings(("HKEY_CURRENT_USER/", QSettings::NativeFormat);settings.setValue("regedit/test","green");//设置key-value键值对QString value = settings.value("regedit/test");//读取key对应的value读写ini文件#include #include int main(int argc, char *argv[]){    QApplication a(argc, argv);    QSettings settings("E:/QTProject/BLOG/Settings_test/test.ini", QSettings::IniFormat);    settings.setValue("Student/name", "ChengKeKe");    settings.setValue("Student/sex", "man");    settings.setValue("Student/age", 24);    settings.setValue("Address", "Xi'an");    QString name = settings.value("Student/name").toString();    QString sex = settings.value("Student/sex").toString();    return a.exec();}

打开test.ini如图:

注: 其中注意读取Value时,如果存储值为16进制,不能使用int QVariant::toInt(bool * ok = 0) const,结果将返回0;

qsettings删除注册表_QSettings使用方法相关推荐

  1. qsettings删除注册表_QSettings读写ini文件和注册表

    qt4.0一个非常有用的类QSettings QSettings是qt4.0提供的一个读取配置文件的类,在windows平台,它提供了ini文件读些,注册表读写的功能. 而且使用也非常简单.大家可以参 ...

  2. qsettings删除注册表_QSettings读写注册表

    #include #include #include #include using namespace std; void writeSettings(){ //第一个是路径,第二个是文件名,在lin ...

  3. qsettings删除注册表_【Qt】QSettings读写注册表、配置文件【转】

    简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见" ...

  4. qsettings删除注册表_Qt QSettings读取注册表和ini | 学步园

    1.读取注册表,以读取已经安装的软件为例. 已经安装的软件信息的注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ ...

  5. 以system用户登录win7修改删除注册表项的方法

    有些注册表项只有system用户才具备有效权限修改和删除,管理员都无权.如何以system用户登录windows呢?按下面步骤即可. 1.以管理员用户运行 cmd . exe   sc Create ...

  6. 批处理删除注册表分支方法

    双击Reg文件可以导入注册表, 那么如何删除注册表的键值和分支呢? 可以用Dos命令 reg.exe 来删除.举例如下: 假如我要清除WinRAR的历史记录,可以新建个批处理文件, 然后在里面加入如下 ...

  7. Win64 驱动内核编程-32.枚举与删除注册表回调

    枚举与删除注册表回调 注册表回调是一个监控注册表读写的回调,它的效果非常明显,一个回调能实现在SSDT 上 HOOK 十几个 API 的效果.部分游戏保护还会在注册表回调上做功夫,监控 service ...

  8. mysql重装要删注册表_Mysql重装问题—删除注册表

    最近不小心突然卸载了mysql,结果重装mysql老是安装不成功,不是第四步出问题,就是第三步出问题无响应,卸了再重新安装,还是不行.究其原因就是系统里的注册表没有删除干净. 解决步骤: 1.在&qu ...

  9. 如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值

    警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统.Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题.使用注册表编辑器需要您自担风险. 本文分步介绍了如何使用注 ...

最新文章

  1. IEEE技术领域大奖公布:ML先驱上榜,大陆唯一获奖学者来自清华
  2. IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
  3. Asp.net之MsChart控件动态绑定温度曲线图
  4. 代码逻辑分析_双11模块79.34%的前端代码是怎样智能生成的?
  5. Python第三方库使用 —— PIL
  6. J2EE6 servlet session超时机制
  7. 数据结构——约瑟夫环(循环链表C语言版)
  8. 八爪鱼爬取网页数据案例+图解
  9. cousera课程 Introduction to Programming with MATLAB 范德堡大学 作业1
  10. 感动!有人将吴恩达的视频课程做成了文字版
  11. HTML5笔记(一)
  12. 传奇单机架设教程及游戏GM设置方法
  13. python 的math函数库
  14. vim如何与外界复制粘贴
  15. 2017第三届美亚杯全国电子数据取证大赛团队赛wp
  16. Adreno Profiler 提取手机游戏资源
  17. 怎么重置windows7系统网络设置使用cmd命令行实现
  18. 开源轻量级显示框架LVGL简介
  19. 内存泄漏检测C版小工具
  20. ISCE文件格式及其含义

热门文章

  1. docker swarm集群指定容器启动节点
  2. 【排列组合】 组合(lucas定理)
  3. matlab图形功能(二维图形和三维图像)
  4. 助你提高效率的几个Vue指令
  5. excel中怎样设置隔行隔列显示不同颜色
  6. 荣耀9xpro能升鸿蒙吗,荣耀9X也有份,鸿蒙升级计划曝光,麒麟710也支持
  7. linux软件工程师_软件测试技能图谱|自学测试路线图
  8. 名帖192 米芾 行书《张季明帖(三帖卷)》
  9. [GXYCTF2019]luck_guy1题解
  10. USACO Sabotage