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 ...
随机推荐
- Python2.7的安装、python3的安装
>登录python官网下载python2.7的相关版本 python官网链接 >根据平台选择相应的版本 >下载完毕后点击安装即可 >配置环境变量 >安装成功 2 pyth ...
- Chrome OS上可运行Linux
说起Chrome OS,可能多数人第一时间联想的不是操作系统,而是在浏览器领域颇为流行的谷歌Chrome浏览器.其实,Chrome OS也是谷歌 旗下的一款产品,是一款Google开发的基于Linux ...
- jquery 遮罩层指定位置
.css .datagrid-mask-msg { position: absolute; top: %; margin-top: -20px; padding: 12px 5px 10px 30px ...
- C#使用var定义变量时的四个特点
使用var定义变量时有以下四个特点: 1. 必须在定义时初始化.也就是必须是var s = “abcd”形式: 2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了. 3. var要求是 ...
- atom markdown报错:AssertionError: html-pdf: Failed to load PhantomJS module.
今天安装markdown-pdf之后运行的时候报错: AssertionError: html-pdf: Failed to load PhantomJS module. You have to se ...
- Action Results in MVC
- 处理iOS设备的屏幕旋转
某些情况下,不强制的给用户唯一的屏幕角度给用户.这样用户可以旋转手机得到不同的视觉体验. 最简单的就是safari,横看竖看都可以. 这时需要捕捉用户的屏幕旋转事件并处理.很简单,才两步.比把大象装冰 ...
- 很棒的git和python学习网站
很棒的git和python学习网站:http://www.liaoxuefeng.com/ 博主名叫廖雪峰
- C# Path类常用方法
Path 类 对包含文件或目录路径信息的 String 实例执行操作. 1.Path.GetExtension 方法 —— 返回指定的路径字符串的扩展名. public static string G ...
- angular 模板表单