我以前是通过附加一个物体来完成的
self.page().mainFrame().addToJavaScriptWindowObject("js_interface", self.jsi)
在5.7中我做了:
^{pr2}$但当我试图访问公开的函数时,我会遇到一个JavaScript错误,这是可以理解的:
js: Uncaught ReferenceError: js_interface is not defined
我在网上搜索发现我应该用qwebchannel.js,但我找不到在任何地方使用它的文件或说明(这里有一些信息,但只是在安装QT时提供的一些示例中,而不是PyQT)。在
我认为这是一个很大的缺点,JS不能像以前用“addToJavaScriptWindowObject”命令那样在PyQT5.9+中直接与Python通信。 使用websockets。。。如果防火墙很重,所有端口都被阻塞了怎么办。在
我想我将依赖简单的回调(从Python到JS的长池类型检查更改/命令)方法,而不使用QTWebChannel。在
看看this page。它包含了一个有用的示例(用c++编写,但很容易翻译成python)。在
首先,你必须使用websocket从html到你的应用程序和viceversa进行通信。在
然后你可以设置你的QWebChannel。在
你可以包括qwebchannel.js使用脚本标记进入html页面:
然后,在python端创建一个web频道:
^{pr2}$与web频道交互的JS代码:
相关问题 更多 >
编程相关推荐