Дождитесь окончания загрузки веб-страницы, чтобы загрузить следующую в списке - PullRequest
0 голосов
/ 22 декабря 2010

Я использую 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 голосов
/ 25 декабря 2010

вы можете использовать loadFinished сигнал вашего элемента управления QWebView, чтобы определить, когда загрузка страницы завершена, и инициировать загрузку новой. Просьба посмотреть, подойдет ли вам приведенный ниже пример:

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

надеюсь, это поможет, с уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...