等待网页加载完成后再加载列表中的下一个网页
我正在使用PyQT的webView来访问我保存在字典里的网页,代码大概是这样的:
def loadLink(self, url):
manager = QNetworkAccessManager()
request = QNetworkRequest(QUrl(url))
self.ui.webView.load(QUrl(visitar))
def readUnreadLinks(self):
print "Links to read: " + str(len(self.unreadLinks))
for link in self.unreadLinks:
print "link-> " + str(link)
self.loadLink(link)
问题是,它没有等到当前网页加载完就开始加载下一个网页。我想先加载一个网页,等它加载完成后再加载下一个。
谢谢,这让我快疯了 :)
1 个回答
3
你可能想用你的 QWebView 控件的 loadFinished 信号来检测网页加载完成的时刻,然后再去加载新的网页。请看看下面的例子是否对你有帮助:
import sys
from PyQt4 import QtGui, QtCore, QtWebKit
class MainForm(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
self.pages = ['http://www.google.com', 'http://www.citrix.com', 'http://yahoo.com', 'http://reddit.com']
self.index = 0
self.view = QtWebKit.QWebView()
self.view.connect(self.view, QtCore.SIGNAL('loadFinished(bool)'), self.loadFinished)
self.setCentralWidget(self.view)
self.view.load(QtCore.QUrl(self.pages[self.index]))
def loadFinished(self, ok):
self.index += 1
if self.index < len(self.pages) :
self.view.load(QtCore.QUrl(self.pages[self.index]))
else:
print 'done'
def main():
app = QtGui.QApplication(sys.argv)
form = MainForm()
form.show()
app.exec_()
if __name__ == '__main__':
main()
希望这能帮到你,祝好