Почему QWebView.loadFinished вызывается несколько раз на некоторых сайтах, например youtube?

Согласно документации, 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 лет и до сих пор без ответа.

5
задан Community 23 May 2017 в 10:29
поделиться