zoukankan      html  css  js  c++  java
  • Qt随笔

    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是有史以来最多的……

  • 相关阅读:
    WSAAsyncSelect模型触发不了FD_Close消息?
    WSAAsyncSelect模型中,FD_WRITE事件什么时候触发?
    VC学习笔记:状态栏
    VC++对话框中加状态栏
    c++子类和父类成员函数重名
    vim学习笔记(11):vim 去掉<200b>
    tensorflow笔记5:tensorflow的基本运作,函数
    Anaconda的使用和包的更新;conda 创建虚拟环境
    vim学习笔记(10):vim命令大全
    tensorflow笔记4:函数:tf.assign()、tf.assign_add()、tf.identity()、tf.control_dependencies()
  • 原文地址:https://www.cnblogs.com/santiego/p/9461524.html
Copyright © 2011-2022 走看看