在 QtWebkit 中,如何调用网页的 QNetworkAccessManager::createRequest()?

Posted

技术标签:

【中文标题】在 QtWebkit 中,如何调用网页的 QNetworkAccessManager::createRequest()?【英文标题】:In QtWebkit, how does a webpage's QNetworkAccessManager::createRequest() get invoked? 【发布时间】:2014-02-04 11:27:08 【问题描述】:

我正在使用 QtWebkit 和 QtNetwork 模块构建浏览器应用程序。

假设要求每个网页只能访问特定文件夹中的资源,并专门为它预留。在这种情况下,每个网页都会有某种 ID 来识别它,可以用来验证它是否访问了正确的文件夹。

问题是不清楚 createRequest() 方法是如何被调用的。如果它是发出的信号或其他什么,那么我将能够拦截它并添加一些指示网页 ID 的参数。

因此,现在对我开放的唯一选择是为每个 QWebPage 创建一个单独的 QNetworkAccessManager 并重载 createRequest() 函数,而我真的希望能够跨 QWebPages 共享 QNetworkAccessManager。

其他解决方案将不胜感激,但通常我也对如何达到 createRequest() 方法感到非常困惑。

参考: QNetworkAccessManager::createRequest

【问题讨论】:

【参考方案1】:

为每个网页设置一个单独的访问管理器并不是什么大问题。您没有任何测量结果表明这是一个问题,因此以真正的堂吉诃德方式,您正在与风车和假想敌作战:)

createRequest 虚拟方法由各种非虚拟请求方法调用:getpostput。这是non virtual interface (NVI) pattern 的一个很好的例子。

【讨论】:

接受答案;如果我遇到相反的测量结果,我一定会重新提出这个问题。 :)

以上是关于在 QtWebkit 中,如何调用网页的 QNetworkAccessManager::createRequest()?的主要内容,如果未能解决你的问题,请参考以下文章

从 PyQt4 QtWebkit 中的网页访问图像

Python 中无标题 QtWebKit 浏览器中多个网页的屏幕截图

如何使用 QtWebKit 设置浏览器的大小

Python QtWebKit 将网页保存到文件

使用 PyQt 转换网页到 PDF(使用QtWebKit加载完毕后,打印整个窗口就行了,真简单!)

与 qtwebkit 请求一起发送自定义标头