QtWebkit和QWebEngineView与Javascript交互
以前还是 QWebView 的时候和 Javascript 交互起来很方便,但是到了 Qt5.6 以后改用了 QWebEngineView ,并通过其提供的 qwebchannel.js 来进行交互。可能是由于刚出来的原因,这玩意儿有个 bug 就是必须在每次加载页面的时候手动注入,跳转页面后就失效了,需要手动注入,目前有没有修复具体未测试。这里对 QWebView 和 QWebEngineView 与 Js 交互都做了一个示例。
# 说明
针对 QWebView 通过 QWebFrame 的 addToJavaScriptWindowObject 把对象传递到 Javascript 中
针对 QWebEngineView 通过 QWebChannel.registerObject('Bridge', QObject) 把对象传递到 Javascript 中
可以通过 @pyqtSlot 装饰器来申明该方法可以暴露给 Javascript 调用
@pyqtSlot(str)
def callFromJs(self, text):
QMessag ...