1

我可以让 Qwebkit 打开(在选项卡中)多于一个 QwebView 或其他东西。每个人都将拥有自己的 cookie 并打开自己的会话。我希望最终能够打开多封电子邮件并在一个浏览器中查看它们

4

2 回答 2

4

QWebView不自己处理 cookie。相反,工作被卸载到每个QWebPage传入的QNetworkAccessManager,尽管我目前不知道 QWebView 是否为每个 QWebView 设置相同的 QNeworkAccessManager 或者它是否使用不同的 QWebView ,后者可能看起来是一种不好的方法。

您可以使用QWebPage::networkAccessManager ()来获取负责一个 QWebPage 的 QNetworkAccessManager 和QWebPage::setNetworkAccessManager来设置它。

使用QNetworkAccessManager::cookieJar ()来获取QNetworkCookieJar的句柄,该句柄负责处理给定 QNetworkAccessManage 的 cookie。

因此,如果您创建不同的 QWebView 实例或直接明智地使用不同的 QNetworkAccessManager 实例,您可以使用不同的 cookie 会话/jar 创建不同的浏览器视图并实现您想要的结果。

于 2011-01-21T07:50:15.200 回答
1

我知道这个问题已经有一年多了,但我想我会发布一些代码来设置多个会话。

QWebView webView = new QWebView();
QNetworkCookieJar cookieJar = new QNetworkCookieJar();
QNetworkAccessManager nam = new QNetworkAccessManager();
nam.setCookieJar(cookieJar);
webView.page()->setNetworkAccessManager(nam);

使用此代码,您可以创建多个会话,甚至可以将此代码包含在其自己的类中,并且只需实例化该类的一个实例,以便能够在您的应用程序中拥有多个自包含的 Web 浏览器会话。

于 2012-02-02T05:40:45.033 回答