Qt随笔 - QSettings
QSettings类提供了持久的跨平台应用程序设置。
嗯,一句话概括QSettings……
- 创建
来看一下原型:
QSettings::QSettings(const QString &organization, const QString &application = QString(), QObject *parent = Q_NULLPTR)
栗子:
QSettings settings("MySoft","App");
第一个参数是公司组织名,而后是程序名。
也可以直接使用QCoreApplication::setOrganizationName()
和 QCoreApplication::setApplicationName()
默认组织程序名:
QCoreApplication::setOrganizationName("MySoft");
QCoreApplication::setOrganizationDomain("mysoft.com");
QCoreApplication::setApplicationName("App");
...
QSettings settings;
- 写值
1.单纯的对应
settings.setValue("height", 200);
这里便创建了一个height键并赋值为200
(如果存在相同的设置键,现有的值将被新值覆盖。为了提高效率,这些变化可能不会被立即保存到永久存储,可以随时调用sync()来提交更改)
2.前缀
settings.beginGroup("MainWindow");
settings.setValue("height", 200);
settings.setValue("weight", 100);
settings.endGroup();
这里在MainWindow的前缀下便有了值为200的height键和值为100的weight键
- 读值
1.单纯的对应
settings.value("height",200);
返回相应值,第一个参数就是所对应的键的名称了,第二个参数则是默认值(也就是说如果没有height的值时,QSettings将会返回一个空QVariant(可转换为整数0),那么这时就可以使用默认值)
2.前缀
settings.beginGroup("MainWindow");
settings.value("height", 200);
settings.value("weight", 100);
settings.endGroup();
同上,同上~
- 键的操作
1.获取所有键
QStringList QSettings::allKeys() const
无参数,返回一个包含所有键的QStringList(注意 include!)
来吧,看看官方的Example:
QSettings settings;
settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
QStringList keys = settings.allKeys();
// keys: ["fridge/color", "fridge/size", "sofa", "tv"]
2.获取所有子键集
QStringList QSettings::childGroups() const
官方的Example:
QSettings settings;
settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
QStringList groups = settings.childGroups();
// groups: ["fridge"]
3.获取所有子键
QStringList QSettings::childKeys() const
Example:
QSettings settings;
settings.setValue("fridge/color", QColor(Qt::white));
settings.setValue("fridge/size", QSize(32, 96));
settings.setValue("sofa", true);
settings.setValue("tv", false);
QStringList keys = settings.childKeys();
// keys: ["sofa", "tv"]
4.判断是否存在指定的键
bool QSettings::contains(const QString & key) const
5. 删除相关的键
void QSettings::remove(const QString & key)
4.删除所有键
void QSettings::clear()
嗯,终于写完了,自己目前正好要做一个有关QSettings的项目,心里有底了……感觉QSettings的文档里的example是有史以来最多的……
Qt随笔 - QSettings的更多相关文章
- Qt 配置文件QSettings
QString appDirPath = QCoreApplication::applicationDirPath(); QSettings* configIniRead = new QSetting ...
- 【Qt 】QSettings写ini配置文件
QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <Q ...
- 【Qt】QSettings读写注册表、配置文件【转】
简述 一般情况下,我们在开发软件过程中,都会缓存一些信息到本地,可以使用轻量级数据库sqlite,也可以操作注册表.读写配置文件. 关于QSettings的使用前面已经介绍过了,比较详细,见“更多参考 ...
- 【Qt】QSettings介绍【转】
简介 QSettings类提供了持久的跨平台应用程序设置. 用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表,OS X和iOS的属性列表文件中. ...
- Qt 配置文件QSettings读取以及中文问题
QSettings settings("xxxx.ini",QSettings::IniFormat);settings.setIniCodec(QTextCodec::codec ...
- Qt的QSettings类和.ini文件读写
Detailed Description QSettings类提供了持久的跨平台的应用程序设置.用户通常期望应用程序记住它的设置(窗口大小.位置等)所有会话.这些信息通常存储在Windows系统注册表 ...
- QT 使用QSettings读写ini配置文件
利用Qsettings包一个类 RWIniFile, writeIni方法写文件, readIni方法读文件 rwinifile.h #ifndef RWINIFILE_H #define RWINI ...
- QT 随笔
1. 设置窗体属性,无边框 | 置顶 setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHin ...
- QT 随笔目录
[1]基础部分 <信号和槽机制> <信号与槽知识点> <QString 与 string转换> <QT 继承QWidget && 继承QDia ...
随机推荐
- jQuery基础教程-第8章-001Adding new global functions
一. 1.To add a function to the jQuery namespace, we can just assign the new function asa property of ...
- canvas时钟demo
显示效果如下 源码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- 如何获取.properties配置文件
如何获取.properties配置文件 分析思路: 先使用流和文件关联,即读取文件 再读取文件内容,一行一行读取 字符分割“=” 键值对 然后把键值对放到集合中去 但是Properties类里面有方 ...
- javaweb dom4j解析xml文档
1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它 ...
- C# Path类常用方法
Path 类 对包含文件或目录路径信息的 String 实例执行操作. 1.Path.GetExtension 方法 —— 返回指定的路径字符串的扩展名. public static string G ...
- Mysql避免重复插入记录方法
一.mysql replace用法 1.replace into replace into table (id,name) values('1','aa'),('2','bb') 此语句的作用是向 ...
- Lua入门(一)
嵌入式语言 作为一门扩展式语言,Lua 没有 "main" 程序的概念: 它只能 嵌入 一个宿主程序中工作, 该宿主程序被称为 被嵌入程序 或者简称 宿主 . 宿主程序可以调用函数 ...
- 有大佬拉我一把麽,现在广州还有c++后台实习招聘麽
有大佬拉我一把麽,现在广州还有c++后台实习招聘麽
- 数据库抽象层 pdo
一 . PDO的连接 $host = "localhost"; $dbname = "hejuntest"; $username = "root&qu ...
- [Swift实际操作]九、完整实例-(1)在iTunesConnect网站中创建产品
本文将通过一个实例项目,演示移动应用开发的所有步骤.首先要做的是打开浏览器,并进入[iTunesConnect网站],需要通过它创建一款自己的应用. 在iTunesConnect的登录页面中,输入自己 ...