qt QUrl详解

1、概述

QUrl是Qt框架中用于处理URL(统一资源定位符)的类,它提供了构建、解析、编码、解码和处理URL的功能。QUrl支持多种协议,如HTTP、HTTPS、FTP以及文件URL等,并能处理URL的各个组成部分,如协议、主机、路径、查询参数、端口、用户名和密码等。在QML中,QUrl常用于网络请求、文件访问等场景。

2、重要函数
  • 构造函数和赋值运算符:用于创建和初始化QUrl对象,以及赋值。
  • adjusted():根据指定的格式化选项调整URL。
  • authority()fragment()host()password()path()query()scheme()userInfo()userName() 等:用于获取URL的各个组成部分。
  • hasFragment()hasQuery()isEmpty()isLocalFile()isParentOf()isRelative()isValid():用于检查URL的特定属性。
  • setAuthority()setFragment()setHost()setPassword()setPath()setPort()setQuery()setScheme()setUserInfo()setUserName():用于设置URL的各个组成部分。
  • resolved():解析相对URL。
  • toCFURL()toNSURL():将QUrl转换为平台特定的URL表示。
  • toDisplayString()toEncoded()toLocalFile()toString():将QUrl转换为不同格式的字符串表示。
  • swap():与另一个QUrl对象交换内容。
  • fromAce()toAce():用于ACE(ASCII Compatible Encoding)编码和解码域名。
  • fromCFURL()fromNSURL():从平台特定的URL表示创建QUrl对象。
  • fromEncoded()fromLocalFile()fromUserInput():从编码的字符串、本地文件路径或用户输入创建QUrl对象。
  • fromPercentEncoding()toPercentEncoding():用于百分比编码和解码。
  • fromStringList()toStringList():将URL字符串列表转换为QUrl对象列表,或将QUrl对象列表转换为字符串列表。
  • idnWhitelist()setIdnWhitelist():获取或设置IDN(国际化域名)白名单。

3、常用枚举类型
  • ComponentFormattingOption 枚举

这个枚举定义了在格式化URL组件时的不同选项:

  • PrettyDecoded:可能意味着以易于阅读的方式解码URL组件。
  • EncodeSpaces:对空格进行编码。
  • EncodeUnicode:对Unicode字符进行编码。
  • EncodeDelimiters:对分隔符进行编码。
  • EncodeReserved:对保留字符进行编码。
  • FullyDecoded:完全解码URL组件。

  • ParsingMode 枚举

这个枚举定义了URL解析的不同模式:

  • TolerantMode:容错模式,可能允许一些不符合标准的URL格式。
  • StrictMode:严格模式,要求URL严格遵守标准。
  • DecodedMode:解码模式,可能在解析前对URL进行解码。

  • UrlFormattingOption 枚举

这个枚举定义了格式化URL时的不同选项:

  • None:不进行任何格式化。
  • RemoveScheme:移除URL的方案部分(如http://)。
  • RemovePassword:移除URL中的密码部分。
  • RemoveUserInfo:移除URL中的用户信息部分(用户名和密码)。
  • RemovePort:移除URL中的端口号。
  • NormalizePathSegments:规范化路径段,例如将//替换为/,移除...等。

  • UserInputResolutionOption 枚举

这个枚举定义了处理用户输入时的不同解析选项:

  • DefaultResolution:使用默认解析方式。
  • AssumeLocalFile:假设输入为本地文件路径。
    qDebug() << QUrl("main.qml").isRelative();          // true: no schemeqDebug() << QUrl("qml/main.qml").isRelative();      // true: no schemeqDebug() << QUrl("file:main.qml").isRelative();     // false: has "file" schemeqDebug() << QUrl("file:qml/main.qml").isRelative(); // false: has "file" scheme// Absolute URL, relative pathQUrl url("file:file.txt");qDebug() << url.isRelative();                 // false: has "file" schemeqDebug() << QDir::isAbsolutePath(url.path()); // false: relative path// Relative URL, absolute pathurl = QUrl("/home/user/file.txt");qDebug() << url.isRelative();                 // true: has no schemeqDebug() << QDir::isAbsolutePath(url.path()); // true: absolute pathQUrl original("http://example.com/?q=a%2B%3Db%26c");QUrl copy(original);copy.setQuery(copy.query(QUrl::FullyDecoded), QUrl::DecodedMode);qDebug() << original.toString();   // prints: http://example.com/?q=a%2B%3Db%26cqDebug() << copy.toString();       // prints: http://example.com/?q=a+=b&cQUrl url("http://www.example.com/List of holidays.xml");// url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"QUrl url = QUrl::fromEncoded("http://qt-project.org/List%20of%20holidays.xml");QUrl url("http://qt-project.org/support/file.html");// url.adjusted(RemoveFilename) == "http://qt-project.org/support/"// url.fileName() == "file.html"

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6703.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++----------------------多态

1.多态 1.1多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)…

javaSE.类与对象

类与对象 人类&#xff0c;鸟类&#xff0c;鱼类... 例如人&#xff0c;具有不同性格&#xff0c;但根本上都是人。 对象是某一类事物实际存在的每个个体&#xff08;实例&#xff09;例如&#xff1a;雷军 A:谁拿走了我的手机&#xff1f; B:是个人&#xff08;类&#xff0…

Windows cmd常用命令

文章目录 Windows cmd常用命令一、引言二、文件和目录操作1、查看和切换目录2、文件和目录的创建与删除 三、系统信息与网络配置1、系统信息2、网络配置 四、使用示例五、总结 Windows cmd常用命令 一、引言 Windows 命令提示符&#xff08;cmd&#xff09;是一个强大的工具&a…

保健食品注册数据库<一键查询保健食品信息>

在保健品市场竞争激烈的情况下&#xff0c;企业要如何保障产品合规、信息公开&#xff0c;并且能够迅速应对市场变化呢&#xff1f;查询保健食品注册信息是关键环节。 当下&#xff0c;查询保健食品注册信息主要有两种途径&#xff1a;一是利用国家保健食品注册数据库进行查询…

无所不搜,吾爱制造

吾爱论坛作为众多软件资源爱好者的宝藏之地&#xff0c;汇聚了许多优秀的软件作品&#xff0c;堪称软件界的“福地”。许多技术大佬在这里分享自己的创作。 而今天要介绍的&#xff0c;正是吾爱作者“buyaobushuo”自制的多功能娱乐软件——太极。这款软件基于flet开发&#x…

【C++】详细讲解继承(下)

本篇来继续说说继承。上篇可移步至【C】详细讲解继承&#xff08;上&#xff09; 1.继承与友元 友元关系不能继承 &#xff0c;也就是说基类友元不能访问派⽣类私有和保护成员。 class Student;//前置声明class Same //基类 { public:friend void Fun(const Same& p, con…

【二叉树】4. 判断一颗二叉树是否是平衡二叉树。5. 对称二叉树。6. 二叉树的构建及遍历 7. 二叉树的分层遍历 。

判断一颗二叉树是否是平衡二叉树。OJ链接 可以在求树高度的过程中判断树是否平衡 对称二叉树。OJ链接 二叉树的构建及遍历。OJ链接 注意&#xff1a;public static int i最好把static去掉 否则当有多个测试用例时 i无法重新为0二叉树的分层遍历 。OJ链接 但此题要求返回List…

代码随想录刷题day14(2)|(链表篇)02.07. 链表相交(疑点)

目录 一、链表理论基础 二、链表相交求解思路 三、相关算法题目 四、疑点 一、链表理论基础 代码随想录 二、链表相交求解思路 链表相交时&#xff0c;是结点的位置&#xff0c;也就是指针相同&#xff0c;不是结点的数值相同&#xff1b; 思路&#xff1a;定义两个指针…

IDE提示:因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170

问题情况 不知道为什么我的IDE终端运行命令的时候总提示以下内容&#xff1a; Import-Module : 无法加载文件 D:\Anaconda3\shell\condabin\Conda.psm1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?LinkID1351…

Android中Service在新进程中的启动流程3

目录 1、AMS调用客户端onCreate前的准备工作 2、AMS调用客户端onCreate方法 3、AMS调用客户端的onBind方法 4、AMS调用客户端onStart前的准备 5、AMS调用客户端onStart方法 还是先放上Service启动流程概览图&#xff0c;如下&#xff1a; 上一篇文章&#xff0c; 我们分析…

MVCC底层原理实现

MVCC的实现原理 了解实现原理之前&#xff0c;先理解下面几个组件的内容 1、 当前读和快照读 先普及一下什么是当前读和快照读。 当前读&#xff1a;读取数据的最新版本&#xff0c;并对数据进行加锁。 例如&#xff1a;insert、update、delete、select for update、 sele…

基于Springboot + vue实现的在线装修管理系统

“前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能学习网站” &#x1f496;学习知识需费心&#xff0c; &#x1f4d5;整理归纳更费神。 &#x1f389;源码免费人人喜…

【多视图学习】显式视图-标签问题:多视图聚类的多方面互补性研究

Explicit View-labels Matter:A Multifacet Complementarity Study of Multi-view Clustering TPAMI 2024 论文链接 代码链接 0.论文摘要 摘要-一致性和互补性是促进多视图聚类&#xff08;MVC&#xff09;的两个关键因素。最近&#xff0c;随着流行的对比学习的引入&#…

Docker Hub 全面解析及应对策略

在现代 DevOps 和容器化应用开发中&#xff0c;Docker Hub 是一个不可或缺的工具。然而&#xff0c;一些地区或企业对 Docker Hub 的访问受到限制&#xff0c;甚至全面禁止。这种现象引发了开发者和运维人员的广泛关注。那么&#xff0c;为什么 Docker Hub 会被禁用&#xff1f…

掌握Spring事务隔离级别,提升并发处理能力

Spring框架支持的事务隔离级别与标准的JDBC隔离级别保持一致&#xff0c;共包括五大隔离级别&#xff0c;它们分别是&#xff1a;DEFAULT&#xff08;默认隔离级别&#xff09;、READ_UNCOMMITTED&#xff08;读未提交&#xff09;、READ_COMMITTED&#xff08;读已提交&#x…

Rabbitmq高级特性之消费方确认

背景&#xff1a; 发送方发送消息之后&#xff0c;到达消费端之后&#xff0c;可能会有以下情况&#xff1a;消息处理成功&#xff0c;消息处理异常。RabbitMQ在向消费者发送消息之后&#xff0c;就会把这条消息给删除掉&#xff0c;那么第二种情况&#xff0c;就会造成消息丢…

[C]基础8.详解操作符

博客主页&#xff1a;算法歌者本篇专栏&#xff1a;[C]您的支持&#xff0c;是我的创作动力。 文章目录 0、总结1、操作符的分类2、二进制和进制转换2.1、2进制转10进制2.2、10进制转2进制2.3、2进制转8进制和16进制 3、原码、反码、补码4、移位操作符4.1 左移操作符4.2 右移操…

【豆包MarsCode蛇年编程大作战】花样贪吃蛇

目录 引言 展示效果 prompt提示信息 第一次提示&#xff08;实现基本功能&#xff09; 初次实现效果 第二次提示&#xff08;美化UI&#xff09; 第一次美化后的效果 第二次美化后的效果 代码展示 实现在线体验链接 码上掘金使用教程 体验地址&#xff1a; 花样贪吃蛇…

【Maui】注销用户,采用“手势”点击label弹窗选择

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;3.1 方法一&#xff1a;前端绑定3.2 方法二&#xff1a;后端绑定3.3 注销用户的方法 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创…

RoCE网络及其协议栈详解(没有中间商赚差价的网络)

引言 随着数据中心对高性能、低延迟通信需求的不断增长&#xff0c;传统的TCP/IP以太网连接已经难以满足现代应用的要求。为了解决这些问题&#xff0c;RDMA&#xff08;Remote Direct Memory Access&#xff09;技术应运而生。RDMA是一种允许网络中的不同计算机直接访问对方内…