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 に答える