Qt随笔 - QSettings

作者: 静_谷 | 来源:发表于2017-03-18 20:23 被阅读79次

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

  1. 删除相关的键
    void QSettings::remove(const QString & key)
    4.删除所有键
    void QSettings::clear()

嗯,终于写完了,自己目前正好要做一个有关QSettings的项目,心里有底了……感觉QSettings的文档里的example是有史以来最多的……

相关文章

  • Qt随笔 - QSettings

    QSettings类提供了持久的跨平台应用程序设置。 嗯,一句话概括QSettings…… 创建来看一下原型:QS...

  • QT Qsettings

    写文件 获取数据,同时可以设置值 列出设备的环境变量 以管理员运行行可修改环境变量 默认以管理员允许exe pro...

  • Qt之QSettings

    QSettings导入导出,保存信息。*.ini详细内容 1. 基本使用 1.1 生成*.ini文件 注:经过实测...

  • QT4.7.4使用QSetttings创建INI文件,但无法创建

    我使用QT4.7.4的QSettings创建ini文件时,采用代码段1时一直无法创建成功,后来在stackover...

  • QT学习之如何读写配置文件(QSettings)

    概述 有时候,我们需要根据本地的配置文件,去配置我们的程序,在其他语言中,可能需要自己去写读写文件的逻辑,而在QT...

  • qt5解决读取ini文件中中文乱码

    QString iniFilePath ="/../conf/xxx.ini";QSettings setting...

  • QSettings使用

    创建配置文件操作对象 1、带路径 2、不带路径 配置文件路径默认为C:\Users\用户名\AppData\Roa...

  • Qtreewidget

    样例源码PyQt(Python+Qt)学习随笔:树型部件的QTreeWidget的itemAbove、itemBe...

  • QT文件

    QSettings 用于保存本地配置。路径:注册表 HKEY_CURRENT_USER\Software\orga...

  • Qt随笔 - foreach

    Qt对c++的一个扩展,主要用于按顺序历经容器(container)中的对象 嗯,还是一句话搞定。 基本形式: 这...

网友评论

    本文标题:Qt随笔 - QSettings

    本文链接:https://www.haomeiwen.com/subject/ookpnttx.html