TypeError:javaScriptConfirm()正好接受python的1个参数(给定3个)

TypeError:javaScriptConfirm()正好接受python的1个参数(给定3个),python,pyqt,pyqt4,qwebview,Python,Pyqt,Pyqt4,Qwebview,MyWebPage()类是: self.browser = QWebView() self.page = MyWebPage() self.browser.setPage(self.page) 然后我得到类型错误: TypeError:javaScriptConfirm()正好接受1个参数(给定3个) 有人能告诉我为什么会出现这样的错误吗?如果您想覆盖类的某个方法,那么函数必须具有相同数量的参数,如果我们查看: 虚拟void javaScriptAlert(QWebFrame*frame,co

MyWebPage()类是:

self.browser = QWebView()
self.page = MyWebPage()
self.browser.setPage(self.page)
然后我得到类型错误:

TypeError:javaScriptConfirm()正好接受1个参数(给定3个)


有人能告诉我为什么会出现这样的错误吗?

如果您想覆盖类的某个方法,那么函数必须具有相同数量的参数,如果我们查看:

虚拟void javaScriptAlert(QWebFrame*frame,const QString&msg)

虚拟bool javaScriptConfirm(QWebFrame*frame,const QString&msg)

虚拟空javaScriptConsoleMessage(常量QString和消息,int 行号、常量Q字符串和源ID)

虚拟bool javaScriptPrompt(QWebFrame*frame,const-QString&msg,const-QString&defaultValue,QString*result)

通过查看,您必须覆盖以下方法:

class MyWebPage(QWebPage):
    def javaScriptAlert(self):
        pass
    def javaScriptConfirm(self):
        pass
    def javaScriptConsoleMessage(self):
        pass
    def javaScriptPrompt(self):
        pass
或者,如果您不打算使用这些参数中的任何一个,您可以使用
*args
**kwargs

class MyWebPage(QWebPage):
    def javaScriptAlert(self, frame, msg):
        pass
    def javaScriptConfirm(self, frame, msg):
        pass
    def javaScriptConsoleMessage(self, message, lineNumber, sourceID):
        pass
    def javaScriptPrompt(self, frame, msg, defaultValue, result):
        pass

当我运行代码时,我得到另一个类型错误,即MyWebPage.javaScriptConfirm()的结果无效,然后我将pass更改为True,但仍然得到samd错误,您知道如何修复此错误吗?
class MyWebPage(QWebPage):
    def javaScriptAlert(self, *args, **kwargs):
        pass
    def javaScriptConfirm(self, *args, **kwargs):
        pass
    def javaScriptConsoleMessage(self, *args, **kwargs):
        pass
    def javaScriptPrompt(self, *args, **kwargs):
        pass