在 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
虚拟方法由各种非虚拟请求方法调用:get
、post
和 put
。这是non virtual interface (NVI) pattern 的一个很好的例子。
【讨论】:
接受答案;如果我遇到相反的测量结果,我一定会重新提出这个问题。 :)以上是关于在 QtWebkit 中,如何调用网页的 QNetworkAccessManager::createRequest()?的主要内容,如果未能解决你的问题,请参考以下文章
Python 中无标题 QtWebKit 浏览器中多个网页的屏幕截图