2012-08-01 75 views
0

我正在编写一个生成并显示QWebView小部件中的页面的Python/PyQt4应用程序。该页面包含JavaScript代码,我希望能够调用从python应用程序返回数据的函数。在QWebView中从javascript访问python函数

到目前为止,我可以调用不返回数据的函数(使用pyqtSlot装饰器),并调用通过将参数公开为属性(使用pyqtProperty装饰器)来获取参数的函数。我没有解决的方法是用参数调用一个返回数据的python函数。

问题9615194解释了如何从C++中完成此任务,但我无法看到如何将其传输到PyQt4。

回答

1

我怀疑你没有使用result=关键字来指定你的装饰器中的返回值?

@pyqtSlot(str, result=str) 
def echo(self, phrase): 
    return self.parent().echo(phrase) 

最近我碰到了这个。如果您省略result=,则不会产生错误,该方法只是默默无闻地返回。相当令人生气,直到我明白了。查看我对this question的回答,查看一个工作示例。