Переопределить ifInterruptJavaScript в QWebPage с помощью PySide

Я хотел бы переопределить PySide.QtWebKit.QWebPage.shouldInterruptJavaScript () слот, чтобы молча игнорировать запросы прерывания JavaScript. У меня есть собственный таймер-таймер, и мне не нужен диалог сообщения по умолчанию.

Цитирование документации PySide:

Из-за ограничений двоичной совместимости эта функция не является виртуальной. Если вы хотите предоставить свою собственную реализацию в подклассе PySide.QtWebKit.QWebPage, переопределите слот QWebPage.shouldInterruptJavaScript () в вашем подклассе. QtWebKit будет динамически обнаруживать слот и вызывать его.

Это пример кода, который я написал, но мой метод shouldInterruptJavaScript () никогда не вызывается. Я вижу тот же код, который используется в проектах PhantomJS и webscraping с открытым исходным кодом.

import sys from PySide import QtCore from PySide.QtGui import QApplication from PySide.QtWebKit import QWebPage class QWebPageHeadless(QWebPage): # FIXME: This is not working, the slot is not overriden! @QtCore.Slot() def shouldInterruptJavaScript(self): print "Interrupt javascript request ignored..." return False if __name__ == "__main__": app = QApplication(sys.argv) page = QWebPageHeadless() page.mainFrame().setHtml('<script>while(1);</script>') sys.exit(app.exec_()) 

У меня Python 2.7.1, PySide 1.0.2, Qt 4.7.2. Прямо сейчас я создаю последнюю версию PySide, поэтому я могу ее протестировать, но я не могу ничего найти о shouldInterruptJavaScript в последних выпусках или отчетах об ошибках.

Есть ли что-то особенное, как мне переопределить ifInterruptJavaScript в моем подклассе?

  • Установка useragent в QWebView
  • One Solution collect form web for “Переопределить ifInterruptJavaScript в QWebPage с помощью PySide”

    Теперь это исправлено на PySide git master после выпуска 1.0.6.

    Python - лучший язык программирования в мире.