不同的QWebView对象为相同的URL生成相同的输出

时间:2015-02-11 15:48:06

标签: qt pyqt qwebview

我发现如果我们并行地加载一个带有不同QWebView对象的url,我们将得到相同的输出:只有一个这个QWebView会发出真正的请求。这是一个例子:

from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebKitWidgets import QWebView

def load_and_print(url):
    view = QWebView()
    view.load(QUrl(url))
    def on_ready(ok):
        print(view.page().mainFrame().documentElement().toPlainText())
    view.loadFinished.connect(on_ready)

if __name__ == '__main__':
    app = QApplication([])

    # This url outputs random number:
    url = 'https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new'
    load_and_print(url)
    load_and_print(url)

    app.exec_()

    # output:
    # 39
    # 39

如何为每个QWebView对象获取“公平”,唯一的输出,如果url是相同的?

PyQt 5.4,windows 7

1 个答案:

答案 0 :(得分:2)

解决方案是禁用缓存:

view.page().settings().setObjectCacheCapacities(0, 0, 0)
相关问题