2010-12-22 79 views
0

我使用PyQt的web視圖來瀏覽某些網頁,我已經存儲在詞典列表中的下一個代碼是這樣的:等到網頁載入完成加載

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) 

問題它不會等到完成加載網頁並開始加載下一個網頁。我想加載一個網頁,等待它完成加載,然後加載下一個。

謝謝,這是推動我瘋了:)

回答

2

你可能想使用YOUT QWebView控制的loadFinished信號來檢測時,頁面加載是新的成品和觸發加載。 PLS,看看下面的例子會爲你工作:

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() 

希望這會有所幫助,至於