Qt QUrlQuery详解

news2024/9/25 9:41:26

1.概述

QUrlQuery 是Qt框架中用于操作URL查询部分的类,提供了一些方法来解析和构造URL查询字符串。URL查询部分通常是在URL中使用 "?" 后面的一串参数,用于传递数据或配置信息。

如下图所示:也就是 "?" 后面的一串参数。

2.QUrlQuery的主要功能

  • 解析URL查询字符串:可以将URL查询字符串解析为键值对形式的参数。
  • 构造URL查询字符串:可以根据给定的参数构造URL查询字符串。
  • 操作URL查询参数:可以获取、添加、修改、删除URL查询参数。

3.常用方法

构造和解析URL查询参数:

  • QUrlQuery():默认构造函数,创建一个空的QUrlQuery对象。
  • QUrlQuery(const QString& queryString):根据URL查询字符串构造一个QUrlQuery对象。
  • setQuery(const QString& queryString):根据URL查询字符串设置QUrlQuery对象的查询参数。

设置和获取查询参数:

  • addQueryItem(const QString& key, const QString& value):添加一个查询参数。
  • setQueryItems(const QList<QPair<QString, QString>>& queryItems):设置查询参数列表。
  • setQueryDelimiters(QChar valueDelimiter, QChar pairDelimiter):设置查询参数中的值分隔符和键值对分隔符。
  • setQueryItemValue(const QString& key, const QString& value):设置指定键的查询参数的值。
  • allQueryItemValues(const QString& key):获取指定键的所有查询参数值。
  • queryItemValue(const QString& key):获取指定键的查询参数值,如果键不存在则返回默认值。
  • queryItems():获取所有的查询参数键值对。

删除查询参数:

  • removeQueryItem(const QString& key):删除指定键的查询参数。
  • removeAllQueryItems(const QString& key):删除所有具有指定键的查询参数。
  • clear():清除所有的查询参数。

构造URL查询字符串:

  • toString(QFlags<QUrl::FormattingOptions> options = QUrl::None) const:将QUrlQuery对象转换为URL查询字符串。可以使用FormattingOptions来指定查询参数的编码格式。

4.示例

    // 创建一个URL查询对象
    QUrlQuery query;
    // 添加查询参数
    query.addQueryItem("name", "John");
    query.addQueryItem("age", "25");
    // 获取查询参数
    QList<QPair<QString, QString> > params = query.queryItems();
    foreach(auto param, params) {
      qDebug() << param.first << "=" << param.second;
    }
    // 构造URL查询字符串
    QString queryString = query.toString(QUrl::FullyEncoded);
    qDebug() << "URL Query String:" << queryString;
    // 解析URL查询字符串
    QUrlQuery parsedQuery;
    parsedQuery.setQuery(queryString);
    QList<QPair<QString, QString> > parsedParams = parsedQuery.queryItems();
    foreach(auto param, parsedParams) {
      qDebug() << param.first << "=" << param.second;
    }

运行结果:

"name" = "John"
"age" = "25"
URL Query String: "name=John&age=25"
"name" = "John"
"age" = "25"

5.相关参考

Qt QNetworkInterface详解_Mr.codeee的博客-CSDN博客

Qt QHostInfo详解_Mr.codeee的博客-CSDN博客

Qt QUrl详解-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30秒get视频号视频如何下载,保存视频号视频到本地方法!

终于可以告别无法下载视频号视频的烦恼啦&#xff01;下面是一些只需 30 秒就能get到的t视频号视频如何下载方法&#xff0c;让我们一起来探索如何保存视频号视频到本地方法吧&#xff01; 首先&#xff0c;要记得这些方法仅适用于个人观看或学习使用&#xff0c;不可用于商业用…

SpringBoot,使用JavaMailSender发送邮件(含源码)。

本文主要讲解使用JavaMailSender发送邮件&#xff0c;并给出对应的参考案例、源码。 1、使用的依赖jar包 JavaMailSender发送邮件&#xff0c;只需要 "spring-boot-starter-mail" jar包就可以。考虑到邮件发送时&#xff0c;使用 Hutool工具生成Excel文件做为附件&am…

4.编译多线程应用程序

在不同平台下使用多线程的程序编译时的编译选项设置如下图所示。 gcc下编译时我们会碰到两个选项-pthread和-lpthread&#xff0c;记住推荐使用-pthread而不是-lpthread&#xff0c;原因如下 -lpthread只是起到链接pthread库的作用&#xff1b;而-pthread选项除了会链接pthrea…

java爱心代码,脱单必备

package com.example.test;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit; import java.util.jar.JarOutputStream;import javax.swing.JFrame;class Cardioid extends JFrame {//定义窗口大小private …

MySQL数据类型、字符集、引擎、索引

MySQL数据类型、字符集、引擎、索引 数据类型 整型浮点类型字符类型时间类型复合类型整型 MySQL数据类型所占字节值范围tinyint1字节-128~127smallint2字节-32768~32767mediumint3字节-8388608~8388607int4字节-2147483648~2147483647bigint8字节9.22*10的18次方在创建表字段时…

《Linux创建新用户》

本文主要讲解linux下如何进行新用户创建、登录以及删除操作 文章目录 1、创建新普通用户2、登录普通用户&#xff08;一&#xff09;已经创建过普通用户&#xff08;二&#xff09;第一次创建普通用户 3、普通用户切换至超级用户&#xff08;root&#xff09;及超级用户&#x…

【NLP文本分类算法集锦】零基础入门经典文本分类项目实战(附代码+数据集)

前言 大家好&#xff0c;我是阿光。 本专栏整理了《NLP文本分类算法集锦》&#xff0c;内包含了各种常见的中英文文本分类算法&#xff0c;以及常见的NLP任务&#xff1a;情感分析、新闻分类以及谣言检测等。 文本分类是NLP的必备入门任务&#xff0c;在搜索、推荐、对话等场…

C++面试——多线程详解

C11提供了语言层面上的多线程&#xff0c;包含在头文件<thread>中。它解决了跨平台的问题&#xff0c;提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C11 新标准中引入了5个头文件来支持多线程编程&#xff0c;如下图所示&#xff1a; 多进程与多线程 多…

微信黑名单在哪里找出来怎么恢复微信好友?

微信黑名单在哪里找出来&#xff1f; 1、打开手机微信&#xff0c;点击底部「我」进入找到「设置」&#xff1b; 2、在微信设置内找到「朋友权限」并点击进入&#xff1b; 3、在微信设置朋友权限内&#xff0c;即可找到微信通讯录黑名单&#xff0c;并点击微信「通讯录黑名单」…

1200*B. Interesting Subarray(贪心规律)

Problem - 1270B - Codeforces 解析&#xff1a; 可以发现&#xff0c;对于某个符合条件的数列&#xff0c;如果两个最值不在两端&#xff0c;那么可以删去两端多余的元素直到两个最值在两端为止。 我们观察某两个相邻元素a、b&#xff0c;可以发现这两个元素组成的序列成立的条…

基于旗鱼算法的无人机航迹规划-附代码

基于旗鱼算法的无人机航迹规划 文章目录 基于旗鱼算法的无人机航迹规划1.旗鱼搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用旗鱼算法来优化无人机航迹规划。 1.旗鱼搜索算法 …

C语言 每日一题 PTA 10.30 day8

1.高空坠球 皮球从某给定高度自由落下&#xff0c;触地后反弹到原高度的一半&#xff0c;再落下&#xff0c;再反弹&#xff0c;……&#xff0c;如此反复。问皮球在第n次落地时&#xff0c;在空中一共经过多少距离&#xff1f;第n次反弹的高度是多少&#xff1f; 输入格式 : …

excel求差公式怎么使用?

利用excel求差&#xff0c;可能有许多的小伙伴已经会了&#xff0c;不过还是存在一些不太熟悉的朋友们&#xff0c;所以这里有必要讲解一下。其实求差的实现主要就是一个公式&#xff0c;就是用一个单元格中的数字“减去”另一个单元格中的数字“等于”第三个单元格。此公式掌握…

854数据结构简答题---图

1.&#xff08;2015期末&#xff09;已知无环路有向图如图3.1,请在表2、表3中填写出各事件的最早发生时间、最迟发生时间、活动的最早、最迟开始时间&#xff0c;给出关键活动及关键路径。 从源点到汇点的有向路径可能有多条&#xff0c;所有路径中&#xff0c;具有最大路径长…

网络工程综合试题(三)

1. BGPMLS的作用是什么&#xff1f; BGPMLS&#xff08;BGP Monitoring Protocol and Label Switching&#xff09;是一种用于监控和管理BGP&#xff08;Border Gateway Protocol&#xff09;网络的协议和技术。它结合了BGP和MPLS&#xff08;Multiprotocol Label Switching&am…

超级英雄的导航之旅:动态路由和嵌套路由

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

linux下backtrace函数获取函数调用堆栈信息用法

backtrace用途介绍&#xff1a; 使用backtrace可以查看函数的调用关系&#xff0c;也可以查看程序异常时的函数调用关系。配置生成coredump生成文件的方法也可以捕获异常&#xff0c;但产生的coredump文件内存较大&#xff0c;backtrace函数的方法占用的内存小。 需求&#x…

这个人工智能社区火爆了!手把手教你零代码搞定大模型应用开发

想给自己做个私人定制的旅行攻略&#xff0c;满足个性化的出游需求&#xff0c;还要细致关注到天气、穿衣、老人孩子的作息等等&#xff0c;但太耗时费力怎么办&#xff1f;让AI帮忙搞定。一位开发者在AI Studio星河大模型社区用短短数小时就做好了“旅行规划家”智能应用。像这…

ICS TRIPLEX T8311 控制器模块

掌握器模块是产业自动化和掌握体系中的症结组件&#xff0c;具备多种特征&#xff0c;以保证体系的稳定性、否靠性和高效性。以下是掌握器模块的一些主要特征&#xff1a; 多通道掌握&#xff1a; 掌握器模块通常否以或许掌握多个通道&#xff0c;许否同时治理多个装备或历程。…

基于ADS的肖特基二极管整流电路仿真

文章目录 一、构建二极管模型二、构建封装寄生的二极管模型三、构建整流电路四、仿真及优化4.1HB仿真4.2 LSSP仿真4.3 仿真及调谐结束最近在仿真一个12级的整流电路,想利用ADS做一些原理级的仿真,验证可行性。这个事情对理解非线性电路还是有点帮助,所以把它记录下来。 先来…