当前位置: 首页 > news >正文

上海网站设计排名/河北seo关键词排名优化

上海网站设计排名,河北seo关键词排名优化,360全景图合成软件,简单网页设计模板素材QSettings类 QSettings类公共类型&#xff08;枚举&#xff09;公有成员函数静态成员函数函数作用这个类写文件的特征 QSettings类 QSettings类提供持久的独立于平台的应用程序设置。 头文件:#include< QSettings >qmake:QT core继承&#xff08;父&#xff09;:QObje…

QSettings类

  • QSettings类
    • 公共类型(枚举)
    • 公有成员函数
    • 静态成员函数
    • 函数作用
    • 这个类写文件的特征


QSettings类

QSettings类提供持久的独立于平台的应用程序设置。

头文件:#include< QSettings >
qmake:QT + =core
继承(父):QObject

公共类型(枚举)

0:使用最适合平台的存储格式存储设置。
在Windows上,这意味着系统注册表;
在macOS和iOS上,这意味着CFPreferences API在Unix上,这意味着INI格式的文本配置文件。(PC平台QSettings::NativeFormat )
1:将设置保存在INI文件中。注意,INI文件失去了数字数据和用于编码它们的字符串之间的区别,所以写为数字的值应该作为QString读回。(嵌入式平台QSettings::IniFormat )

在Unix上,NativeFormat和IniFormat意思相同,只是文件扩展名不同(。用于NativeFormat的配置。ini格式的ini)。

enum	Format { NativeFormat, Registry32Format, Registry64Format, IniFormat, InvalidFormat }

0:将设置存储在特定于当前用户的位置(例如,在用户的主目录中)。
1:将设置存储在全局位置,以便同一台计算机上的所有用户都可以访问同一组设置。

enum	Scope { UserScope, SystemScope }

0:没有发生错误。
1:出现访问错误(例如,试图写入只读文件)。
2:出现格式错误(例如,加载格式错误的INI文件)。

enum	Status { NoError, AccessError, FormatError }

注意点

INI文件格式对键的语法有严格的限制。Qt通过在键中使用%作为转义字符来解决这个问题。此外,如果您保存一个顶级设置(一个没有斜杠的键,例如“someKey”),它将出现在INI文件的“General”部分。为了避免覆盖其他键,如果您使用像“General/someKey”这样的键来存储内容,该键将位于“%General”部分,而不是“General”部分。


遵循我们应该在接受的内容上开明,在生成的内容上保守的原则,QSettings将接受Latin-1编码的INI文件,但生成纯ASCII文件,其中非ASCII值使用标准INI转义序列进行编码。为了提高INI文件的可读性(但可能不太兼容),可以调用setIniCodec()。

公有成员函数

返回类型函数
构造函数QSettings(QSettings::Scope scope, QObject *parent = nullptr)
构造函数QSettings(QObject *parent = nullptr)
构造函数QSettings(const QString &fileName, QSettings::Format format, QObject *parent = nullptr)
构造函数QSettings(QSettings::Format format, QSettings::Scope scope, const
构造函数QSettings(QSettings::Scope scope, const QString &organization, const
构造函数QSettings(const QString &organization, const QString &application = QString(), QObject *parent = nullptr)
virtual~QSettings()
QStringListallKeys() const
QStringapplicationName() const
voidbeginGroup(const QString &prefix)
intbeginReadArray(const QString &prefix)
voidbeginWriteArray(const QString &prefix, int size = -1)
QStringListchildGroups() const
QStringListchildKeys() const
voidclear()
boolcontains(const QString &key) const
voidendArray()
voidendGroup()
boolfallbacksEnabled() const
QStringfileName() const
QSettings::Formatformat() const
QStringgroup() const
QTextCodec *iniCodec() const
boolisAtomicSyncRequired() const
boolisWritable() const
QStringorganizationName() const
voidremove(const QString &key)
QSettings::Scopescope() const
voidsetArrayIndex(int i)
voidsetAtomicSyncRequired(bool enable)
voidsetFallbacksEnabled(bool b)
voidsetIniCodec(QTextCodec *codec)
voidsetIniCodec(const char *codecName)
voidsetValue(const QString &key, const QVariant &value)
QSettings::Statusstatus() const
voidsync()
QVariantvalue(const QString &key, const QVariant &defaultValue = QVariant()) const

静态成员函数

返回类型函数
QSettings::FormatdefaultFormat()
QSettings::FormatregisterFormat(const QString &extension, QSettings::ReadFunc readFunc, QSettings::WriteFunc writeFunc, Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive)
voidsetDefaultFormat(QSettings::Format format)
voidsetPath(QSettings::Format format, QSettings::Scope scope, const QString &path)

函数作用

构造函数

QSettings::QSettings(const QString &organization, const QString &application = QString(), QObject *parent = nullptr)

代码

QSettings settings("Moose Soft", "Facturo-Pro");

相当于

QCoreApplication::setOrganizationName("Moose Soft");
QCoreApplication::setApplicationName("Facturo-Pro");
QSettings settings;

常用构造函数

QSettings::QSettings(const QString &fileName, QSettings::Format format, QObject *parent = nullptr)

构造一个QSettings对象,用于访问存储在名为文件名,带父级父母。如果该文件尚不存在,则创建该文件。

如果格式是QSettings::NativeFormat,的意思文件名取决于平台。在Unix上,文件名是INI文件的名称。在macOS和iOS上,文件名是的名称.plist文件。在Windows上,文件名是系统注册表中的路径。

如果格式是QSettings::IniFormat, 文件名是INI文件的名称。


构造函数

QSettings::QSettings(QSettings::Format format, QSettings::Scope scope, const QString &organization, const QString &application = QString(), QObject *parent = nullptr)

如果范围是QSettings::UserScope,QSettings对象首先搜索用户特定的设置,然后作为后备搜索系统范围的设置。
如果范围是QSettings::SystemScope,QSettings对象忽略用户特定的设置,并提供对系统范围设置的访问。

如果格式是QSettings::NativeFormat本机API用于存储设置。如果格式是QSettings::IniFormat,则使用INI格式。

如果没有给出应用程序名称,QSettings对象将只访问整个组织位置.


析构函数

QSettings::~QSettings()

任何未保存的更改最终都将被写入永久存储。

获取所有键

QStringList QSettings::allKeys() const

例子:可以存储颜色,点,布尔等等

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"]

如果使用beginGroup()设置组,则只返回组中的键,而不返回组前缀:

settings.beginGroup("fridge");
keys = settings.allKeys();
// keys: ["color", "size"]

开始一个组

void QSettings::beginGroup(const QString &prefix)

向当前组追加前缀。 当前组自动添加到指定给QSettings的所有键的前面。此外,查询函数如childGroups()、childKeys()和allKeys()都是基于组的。默认情况下,不设置任何组。 群组有助于避免反复键入相同的设置路径。例如:

settings.beginGroup("mainwindow");
settings.setValue("size", win->size());
settings.setValue("fullScreen", win->isFullScreen());
settings.endGroup();settings.beginGroup("outputpanel");
settings.setValue("visible", panel->isVisible());
settings.endGroup();

调用endGroup()将当前组重置为对应的beginGroup()调用之前的状态。组可以嵌套。


向当前组添加前缀,并开始从数组中读取。返回数组的大小。

int QSettings::beginReadArray(const QString &prefix)
struct Login {QString userName;QString password;
};
QList<Login> logins;
...QSettings settings;
int size = settings.beginReadArray("logins");
for (int i = 0; i < size; ++i) {settings.setArrayIndex(i);Login login;login.userName = settings.value("userName").toString();login.password = settings.value("password").toString();logins.append(login);
}
settings.endArray();

向当前组添加前缀,并开始写入大小为size的数组。如果size为-1(默认值),则根据写入条目的索引自动确定。 如果某一组键出现了很多次,可以使用数组来简化操作。例如,假设您想要保存一个可变长度的用户名和密码列表。然后你可以写:

void QSettings::beginWriteArray(const QString &prefix, int size = -1)
struct Login {QString userName;QString password;
};
QList<Login> logins;
...QSettings settings;
settings.beginWriteArray("logins");
for (int i = 0; i < logins.size(); ++i) {settings.setArrayIndex(i);settings.setValue("userName", list.at(i).userName);settings.setValue("password", list.at(i).password);
}
settings.endArray();

存储格式

logins/size
logins/1/userName
logins/1/password
logins/2/userName
logins/2/password
logins/3/userName
logins/3/password
...

如果存在名为key的设置,则返回true否则返回false。

bool QSettings::contains(const QString &key) const

返回使用此QSettings对象写入的设置的存储路径。

QString QSettings::fileName() const

删除设置键和键的任何子设置。

void QSettings::remove(const QString &key)

例子

QSettings settings;
settings.setValue("ape");
settings.setValue("monkey", 1);
settings.setValue("monkey/sea", 2);
settings.setValue("monkey/doe", 4);settings.remove("monkey");
QStringList keys = settings.allKeys();
// keys: ["ape"]

请注意,如果其中一个回退位置包含具有相同键的设置,则在调用remove()后该设置将可见。 如果key为空字符串,则删除当前组()中的所有键。例如:

QSettings settings;
settings.setValue("ape");
settings.setValue("monkey", 1);
settings.setValue("monkey/sea", 2);
settings.setValue("monkey/doe", 4);settings.beginGroup("monkey");
settings.remove("");
settings.endGroup();QStringList keys = settings.allKeys();
// keys: ["ape"]

注意,Windows注册表和INI文件使用不区分大小写的键,而macOS和iOS上的CFPreferences API使用区分大小写的键。为了避免可移植性问题。


设置访问INI文件的编解码器(包括。Unix上的conf文件)转换为编解码器。编解码器用于对从INI文件读取的任何数据进行解码,并对写入文件的任何数据进行编码。默认情况下,不使用编解码器,非ASCII字符使用标准INI转义序列进行编码。

void QSettings::setIniCodec(QTextCodec *codec)

警告:在访问任何数据之前,必须在创建QSettings对象之后立即设置编解码器。


设置访问INI文件的编解码器(包括。conf文件)转换为由codecName指定的编码的QTextCodec。codecName的常用值包括“UTF-8”、“ISO 8859-1”和“UTF-16”。如果编码没有被识别,什么都不会发生。

void QSettings::setIniCodec(const char *codecName)

将用于存储给定格式和范围的设置的路径设置为path。该格式可以是自定义格式。

void QSettings::setPath(QSettings::Format format, QSettings::Scope scope, const QString &path)

下表总结了默认值:

在这里插入图片描述


将设置键的值设置为value。如果该键已经存在,以前的值将被覆盖。

void QSettings::setValue(const QString &key, const QVariant &value)

注意,Windows注册表和INI文件使用不区分大小写的键,而macOS和iOS上的CFPreferences API使用区分大小写的键。


将任何未保存的更改写入永久存储,并重新加载同时已被另一个应用程序更改的任何设置。 这个函数由QSettings的析构函数自动调用,并由事件循环定期调用,所以通常不需要自己调用。

void QSettings::sync()

返回设置键的值。如果该设置不存在,则返回defaultValue。 如果没有指定默认值,则返回默认的QVariant

注意,Windows注册表和INI文件使用不区分大小写的键,而macOS和iOS上的CFPreferences API使用区分大小写的键。

QVariant QSettings::value(const QString &key, const QVariant &defaultValue = QVariant()) const
QSettings settings;
settings.setValue("animal/snake", 58);
settings.value("animal/snake", 1024).toInt();   // returns 58
settings.value("animal/zebra", 1024).toInt();   // returns 1024
settings.value("animal/zebra").toInt();         // returns 0

这个类写文件的特征

用户通常希望应用程序记住它的设置(窗口大小和位置,选项等)。)跨会话。

这些信息通常存储在Windows的系统注册表中,以及macOS和iOS的属性列表文件中。


在Unix系统上,由于缺乏标准,许多应用程序(包括KDE应用程序)都使用INI文本文件。


QSettings是围绕这些技术的抽象,使您能够以可移植的方式保存和恢复应用程序设置。它还支持自定义存储格式。
QSettings的API基于QVariant,可以让你用最少的努力保存大多数基于值的类型,比如QString、QRect、QImage
。 如果您只需要一个非持久的基于内存的结构,可以考虑使用QMap<QString,QVariant >来代替。


QSettings对象既可以在堆栈上创建,也可以在堆上创建(即使用new)。构造和销毁QSettings对象的速度非常快。

学完一定要看看妹子,放松下
在这里插入图片描述

相关文章:

QSettings Class

QSettings类 QSettings类公共类型&#xff08;枚举&#xff09;公有成员函数静态成员函数函数作用这个类写文件的特征 QSettings类 QSettings类提供持久的独立于平台的应用程序设置。 头文件:#include< QSettings >qmake:QT core继承&#xff08;父&#xff09;:QObje…...

【vue】关于vue中的插槽

当在Vue.js中构建可复用的组件时&#xff0c;有时候需要在父组件中传递内容给子组件。Vue的插槽&#xff08;slot&#xff09;机制提供了一种灵活的方式来实现这种组件间通信。 插槽允许你在父组件中编写子组件的内容&#xff0c;然后将其传递给子组件进行渲染。这样&#xff…...

Springboot整合Mybatis Plus【超详细】

文章目录 Mybatis Plus简介快速整合1&#xff0c;导入依赖2&#xff0c;yml文件中配置信息3&#xff0c;启动类上加上扫描mapper接口所在包的注解4&#xff0c;编写配置类5&#xff0c;实现自动注入通用字段接口&#xff08;非必需&#xff09;6&#xff0c;编写生成器工具类 使…...

接口测试-使用mock生产随机数据

在做接口测试的时候&#xff0c;有的接口需要进行大量的数据进行测试&#xff0c;还不能是重复的数据&#xff0c;这个时候就需要随机生产数据进行测试了。这里教导大家使用mock.js生成各种随机数据。 一、什么是mock.js mock.js是用于生成随*机数据&#xff0c;拦截 Ajax 请…...

Kohl‘s百货的EDI需求详解

Kohls是一家美国的连锁百货公司&#xff0c;成立于1962年&#xff0c;总部位于美国威斯康星州的门多西。该公司经营各种商品&#xff0c;包括服装、鞋子、家居用品、电子产品、化妆品等&#xff0c;并拥有超过1,100家门店&#xff0c;分布在美国各地。本文将为大家介绍Kohls的E…...

二叉树part6 | ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

文章目录 654.最大二叉树思路代码 617.合并二叉树思路代码 700.二叉搜索树中的搜索思路代码 98.验证二叉搜索树思路官方题解代码困难 今日收获 654.最大二叉树 思路 前序遍历构造二叉树。 找出数组中最大值&#xff0c;然后递归处理左右子数组。 时间复杂度On2 空间复杂度On …...

Linux命令记录

Shells 查看当前系统shell cat /etc/shells # 输出 # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash查看正在使用的shell echo $SHELL # 输出 /bin/bashLinux文件结构 bin&#xff1a;系统可执行文件b…...

eBPF 入门实践教程十五:使用 USDT 捕获用户态 Java GC 事件耗时

eBPF (扩展的伯克利数据包过滤器) 是一项强大的网络和性能分析工具&#xff0c;被广泛应用在 Linux 内核上。eBPF 使得开发者能够动态地加载、更新和运行用户定义的代码&#xff0c;而无需重启内核或更改内核源代码。这个特性使得 eBPF 能够提供极高的灵活性和性能&#xff0c;…...

Linux :: vim 编辑器的初次体验:三种 vim 常用模式 及 使用:打开编辑、退出保存关闭vim

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 目录索引&am…...

Linux内核进程创建流程

本文代码基于Linux5.10 内容主要参考《Linux内核深度解析》余华兵 当Linux内核要创建一个新进程时&#xff0c; 流程大致如下 ret fork(); if (ret 0) {/* 子进程装载程序 */ret execve(filename, argv, envp); } else if (ret > 0) {/* 父进程 */ } 大致可以分为创建新…...

【03.04】大数据教程--HTTP协议和静态Web服务器

HTTP协议和静态Web服务器 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于传输超文本的协议&#xff0c;它是Web上的基础通信协议。静态Web服务器是指能够提供静态内容&#xff08;如HTML、CSS、JavaScript和图像文件&#xff09;的服务器。 在本教程中&am…...

数据共享传输:台式机和笔记本同步文件!

为什么要在台式机和笔记本同步文件&#xff1f; “我想在台式机和笔记本同步文件。因为我工作时使用笔记本&#xff0c;在家里使用安装了Windows 10系统的台式机&#xff0c;我想要在笔记本和台式机之间同步应用程序、游戏、文档等。有没有一种可以在台式机和笔记本同步文件的…...

java设计模式(十二)代理模式

目录 定义模式结构角色职责代码实现静态代理动态代理jdk动态代理cglib代理 适用场景优缺点 定义 代理模式给某一个对象提供一个代理对象&#xff0c;并由代理对象控制对原对象的引用。说简单点&#xff0c;代理模式就是设置一个中间代理来控制访问原目标对象&#xff0c;以达到…...

Umi微前端水印踩坑以及解决方案

最近公司需要在管理后台加一个水印方案~ 项目用的umi方案,以为就是改一个配置的问题,后来发现坑点还蛮多~ 希望此稳定能帮助到用umi 的你们. 一. 先来说说心路历程 坑点1 umi的水印适配只能在layout中进行配置,也就是路由配置中layout为false的页面无法配置水印,比如说登录页…...

Android RK3588-12 hdmi-in Camera方式支持NV24格式

hdmi-in Camera方式支持NV24格式 modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp diff --git a/hardware/interfaces/camera/device/3.4…...

Hive窗口函数详细介绍

文章目录 Hive窗口函数概述样本数据表结构表数据 窗口函数窗口聚合函数count()SQL演示 sum()SQL演示 avg()SQL演示 min()SQL演示 max()SQL演示 窗口分析函数first_value() 取开窗第一个值应用场景SQL演示 last_value()取开窗最后一个值应用场景SQL演示 lag(col, n, default_val…...

牛客网【c语言练习】

单选题 下面代码段的输出是&#xff08;-12 &#xff09; int main() {int a3; printf("%d\n",(aa-a*a)); } aa-9&#xff0c;此时还是等于3&#xff0c;因为a*a只是运算&#xff0c;并没有赋值&#xff1b;之后再算a-9&#xff0c;运算之前a等于3&#xff0c;运算…...

C++类和对象(上)

文章目录 &#x1f98d;1. 面向过程和面向对象&#x1f9a7;2. 类的引入&#x1f436;3. 类的定义&#x1f9ae;4. 类的访问控制和封装&#x1f356;4.1 访问限定符&#x1f356;4.2 封装 &#x1f429;5. 类的作用域&#x1f405;6. 类的实例化&#x1f404;7. 类的大小计算&a…...

JavaScript 数据透视表 DHTMLX Pivot Crack

DHTMLX Pivot JavaScript 数据透视表 - 强大的数据汇总和报告 使用我们的高速 JavaScript/HTML5 Pivot 组件可视化您的复杂数据&#xff0c;从而提高您的商业智能。 它可以帮助您以方便的方式汇总大型数据集。 主要特征 纯 JavaScript 库&#xff0c;可轻松与任何服务器端集成…...

QT链接库设置

以windows 平台为例&#xff0c;在.pro 文件中&#xff1a; 1 增加 INCLUDEPATH <头文件路径> DEPENDPATH <头文件路径> 2 LIBS -L<库目录路径> -l<库得名字> 3 设置MT、MTD、MD、MDD运行时库 win32:CONFIG(debug, debug|release): { QMAKE_CFLAGS_…...

零点起飞学Android——期末考试课本复习重点

目录 第一章 认识Android第二章 Android常见界面布局第三章 Android常用基本控件第四章 Android 高级控件第五章 Android菜单和对话框 第一章 认识Android 1. Android 界面设计被称为______。 答案&#xff1a;布局 2. Android中常见的布局包括______、______ 、______ 、____…...

Redis为什么快?

目录 Redis为什么快&#xff1f;渐进式ReHash全局哈希表渐进式ReHash 缓存时间戳 Redis为什么快&#xff1f; 纯内存访问&#xff1b; 单线程避免上下文切换&#xff1b; 渐进式ReHash、缓存时间戳&#xff1b; 前面两个都比较好理解&#xff0c;下面我们主要来说下 渐进式…...

Zabbix从入门到精通以及案例实操系列

1、Zabbix入门 1.1、Zabbix概述 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制&#xff0c;允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据&#xff0c;Zabbix提供了出色的报告和…...

水声声波频率如何划分?水声功率放大器可将频率放大到20MHz吗?

水声声波频率如何划分&#xff1f;水声功率放大器可将频率放大到20MHz吗&#xff1f; 现如今我们可以在地球任意地区实现通信&#xff0c;是因为电磁波的作用。但是我们都知道海洋占了全球十分之七面积&#xff0c;电磁波在水下衰减速度太快&#xff0c;无法做到远距离传输&am…...

网络攻防技术--论文阅读--《基于自动数据分割和注意力LSTM-CNN的准周期时间序列异常检测》

英文题目&#xff1a;Anomaly Detection in Quasi-Periodic Time Series based on Automatic Data Segmentation and Attentional LSTM-CNN 论文地址&#xff1a;Anomaly Detection in Quasi-Periodic Time Series Based on Automatic Data Segmentation and Attentional LST…...

C++ 学习 ::【基础篇:08】:C++ 中 struct 结构体的认识【面试考点:C 与 C++ 中结构体的区别】

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…...

Electron开发:打包和发布 Electron 应用

https://start.spring.io/ 在线数据分析网站 https://tj.aldwx.com/ https://www.spsspro.com/ win10如何分屏 拖到边缘 Electron 环境搭建 https://www.electronjs.org/zh/docs/latest/tutorial/%E6%89%93%E5%8C%85%E6%95%99%E7%A8%8B electron 隐藏菜单 electron 标题栏 设…...

【每日一题Day222】LC1110删点成林 | dfs后序

删点成林【LC1110】 给出二叉树的根节点 root&#xff0c;树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现&#xff0c;我们就把该节点从树上删去&#xff0c;最后得到一个森林&#xff08;一些不相交的树构成的集合&#xff09;。 返回森林中的每棵树。你可以按…...

[ChatGPT] 从 GPT-3.5 到 GPT-5 的进化之路 | ChatGPT和程序员 : 协作 or 取代

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一键三连&#x1f609;有写的不好的地方也欢迎指正&#xff0c;一同进步&#x1f601;…...

6.4 GDP调试多进程程序

目录 GDB调试多进程程序 安装gdb gdb编译 运行gdb 单步运行 从头到尾运行 下一步 运行子进程 同时运行父进程 查看运行的进程 切换进程 退出 GDB调试多进程程序 set follow-fork-mode child 设置GDB调试子进程 set follow-fork-mode parent 设置GDB调试父进…...