PySide / PyQt - QWebView - 按顺序show()多个页面?

时间:2015-05-09 23:06:37

标签: python pyqt pyside qwebview

我正在寻找QWebView按顺序加载和抓取几个页面,但我想在此过程中显示这些网站。

QWebView.show()似乎为最后一个URL打开了一个空白窗口。

我认为我对QWebView有一些基本的误解 - 关于如何在这里完成我想要的任何建议?

示例代码:

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *
import time

class Web(QApplication):
    did_something = Signal()
    def __init__(self):
        super().__init__(sys.argv)

        self.urls = ["http://www.yahoo.com", "http://www.google.com", "http://www.youtube.com"]

        self.w = QWebView()

        self.w.loadFinished.connect(self.loaded)
        self.did_something.connect(self.loadNew)

        self.loadNew()

    def loadNew(self):

        if len(self.urls):
            url = self.urls.pop()
            self.w.setUrl(QUrl(url))
        else:
            self.done()


    def loaded(self):
        print("Loaded URL: {}".format(self.w.url().toString()))
        self.w.show()
        self.doSomething()

    def doSomething(self):
        print("\tDoing something with site!  Printing title: {}".format(self.w.title()))
        time.sleep(2)
        self.did_something.emit()

    def done(self):
        print("\n\nDone")
        self.exit()


if __name__ == '__main__':
    web = Web()
    web.exec_()

0 个答案:

没有答案