TypeError:javaScriptConfirm()正好接受python的1个参数(给定3个)
MyWebPage()类是: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
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