首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用shouldInterruptJavaScript覆盖QWebPage中的PySide

用shouldInterruptJavaScript覆盖QWebPage中的PySide
EN

Stack Overflow用户
提问于 2011-07-29 03:20:16
回答 1查看 882关注 0票数 0

我想要覆盖PySide.QtWebKit.QWebPage.shouldInterruptJavaScript()插槽,以静默地忽略JavaScript中断请求。我有自己的超时计时器设置,我不需要一个默认的消息对话框。

引用PySide 文档

由于二进制兼容性约束,此函数不是虚拟的。如果您想在PySide.QtWebKit.QWebPage子类中提供自己的实现,那么应该重新实现子类中的QWebPage.shouldInterruptJavaScript()槽。QtWebKit将动态检测时隙并调用它。

这是我编写的示例代码,但从未调用我的shouldInterruptJavaScript()方法。我看到了PhantomJS和webscraping开放源代码项目中使用的相同代码。

代码语言:javascript
复制
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_())

我有Python2.7.1,PySide 1.0.2,QT4.7.2。现在,我正在构建最新的PySide,以便对其进行测试,但在最近的发行说明或bug报告中找不到任何关于shouldInterruptJavaScript的信息。

有什么特别之处吗?如何在子类中重新实现shouldInterruptJavaScript?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-03 16:11:02

在版本1.0.6之后,这一点现在已经固定在PySide git主版上了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6868286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档