Привет! Только что скомпилированный код от мастера, он работает хорошо.

ел бы переопределить слот 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 в последних заметках о выпуске или сообщениях об ошибках.

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

Ответы на вопрос(0)

Ваш ответ на вопрос