Я хотел бы переопределить слот PySide.QtWebKit.QWebPage.shouldInterruptJavaScript (), чтобы молча игнорировать запросы прерываний JavaScript.У меня есть собственная настройка таймера тайм-аута, и мне не нужно диалоговое окно сообщений по умолчанию.
Цитирование PySide документация :
Из-за ограничений двоичной совместимости эта функцияне виртуальный.Если вы хотите предоставить свою собственную реализацию в подклассе PySide.QtWebKit.QWebPage, переопределите слот QWebPage.shouldInterruptJavaScript () в своем подклассе.QtWebKit динамически обнаружит слот и вызовет его.
Это пример кода, который я написал, но мой метод shouldInterruptJavaScript () никогда не вызывается.Я вижу тот же код, который используется в PhantomJS и веб-проектах с открытым исходным кодом.
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 в заметках о последних выпусках или отчетах об ошибках.
Есть ли что-то особенное, как мне следует переопределить shouldInterruptJavaScript в моемподкласс