QUrl
QUrl 类提供了一个方便的接口使用 URLs。
最常见的使用QUrl 的方式是通过构造函数来初始化,传递一个 QString 参数。
QUrl url("https://github.com/");
也可以逐渐地构造 URL,通过调用 setScheme()、setUserName()、setPassword()、setHost()、setPort()、setPath()、setQuery() 和 setFragment()。一些方便的函数也可供使用:setAuthority() 设置用户名、密码、主机和端口。setUserInfo() 设置用户名和密码。

其中query
query 指查询字符串,可选,用于给动态网页(例如:使用 CGI、ISAPI、PHP/JSP/ASP/ASP、.NET 等技术制作的网页)传递参数,可有多个参数,用 & 隔开,每个参数的名和值用 = 隔开。

主要通过调用setQuery(QUrlQuery )来设置。
QUrlQuery
QUrlQuery 类提供了一种方法来操纵 URL 查询中的 key-value 对。

上述的查询字符串在 URL 中 被用来传输选项,通常解码为多个 key-value 对。其列表包含了的两个条目,键为“type”和 “color”。
添加组合成url
addQueryItem
// 基本 URL
QString baseUrl = "http://www.zhihu.com/search";
QUrl url(baseUrl);
// key-value 对
QUrlQuery query;
query.addQueryItem("type", "content");
query.addQueryItem("q", "Qt");
url.setQuery(query);
qDebug() << url;
使用 setQueryItems:
// 基本 URL
QString baseUrl = "http://www.zhihu.com/search";
QUrl url(baseUrl);
QUrlQuery query;
// key-value 对
QPair<QString, QString> pair;
pair.first = "type";
pair.second = "content";
QPair<QString, QString> pair2;
pair2.first = "q";
pair2.second = "Qt";
QList<QPair<QString, QString> > items;
items << pair << pair2;
query.setQueryItems(items);
url.setQuery(query);
qDebug() << url;
使用 setQuery:
// 基本 URL
QString baseUrl = "http://www.zhihu.com/search";
QUrl url(baseUrl);
// 查询字符串
QUrlQuery query;
query.setQuery("type=content&q=Qt");
url.setQuery(query);
qDebug() << url;
常见操作
查询所有的 key-value 对:
QList<QPair<QString, QString> > list = query.queryItems();
查询指定 key 对应的 value:
QString value = query.queryItemValue("q");
查询指定 key 是否存在:
bool exist = query.hasQueryItem("q");
删除指定 key 对应的 key-value 对:
query.removeQueryItem("q");