0

如何使用 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 就不再响应了。我错过了什么?

4

1 回答 1

1

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

于 2012-09-12T19:01:50.710 回答