Согласно документации, loadFinished должен запускаться только после того, как все элементы страницы завершили загрузку. Это должно означать, что он будет вызываться только один раз, однако я заметил, что на некоторых сайтах, таких как youtube.com, он вызывается дважды? Есть ли другой способ обойти эту ошибку или самый надежный способ обнаружить событие page.load?
Вот тестовый код:
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4.QtCore import QUrl
from PyQt4.QtGui import QApplication
def onDone(val):
print "Done ...",val
def onStart():
print "Started..."
app = QApplication(sys.argv)
ui = QtWebKit.QWebView()
ui.loadStarted.connect(onStart)
ui.loadFinished.connect(onDone)
ui.load(QUrl("http://www.youtube.com"))
ui.showMaximized()
sys.exit(app.exec_())
Результат:
Started...
Done ... True
Started...
Done ... True
Изменить: Есть почти такой же вопрос , но он старше 2 лет и до сих пор без ответа.