PyQt4.QtWebKit并渲染多个网站

时间:2012-06-11 09:26:56

标签: python pyqt

如何使用QtWebkit渲染多个页面并使用自定义python代码处理每个页面?

现在我有:

class FetchThumb(object):
    def __init__(self):
        self.app = QApplication(sys.argv)
        self.web = QWebView()
        self.app.connect(self.web, SIGNAL("loadFinished(bool)"), self.loadFinished)

    def fetch(self, url, options, callback):
        self.options = options
        self.url = url
        self.callback = callback
        self.web.load(QUrl(url))
        self.app.exec_()

    def loadFinished(self, status):
        print "URL %s loaded, status is ok? %s" % (self.url, status)

        # do something with result...

        # exit event loop
        self.app.quit() 

我打电话给它一次:

fetcher = FetchThumb()
fetcher.fetch(args[-1], options, callback or default_callback)

的工作原理。但如果我想再次使用“fetch”,Qt就不再响应了。我错过了什么?

1 个答案:

答案 0 :(得分:1)

loadFinished中,您拨打self.app.quit()。这会导致在第一页完成加载时停止事件循环。解决方法是在完成所有页面之前不要调用self.app.quit()