2012-08-01 74 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的回答,查看一個工作示例。