PyQt5里的QWebEngineView调用python方法界面假死

在网页调用python端的方法,就是这个技术

js端

<script src="qrc:/qtwebchannel/qwebchannel.js"></script>

python端

channel = QWebChannel()
server_funuc = ServerFunc(browser)
channel.registerObject('serverFunuc', server_funuc)
browser.page().setWebChannel(channel)

就是这种什么槽的技术的时候,如果python端的方法不能马上返回结果,就会导致网页端假死。
用了几种技术,也解决不了,包括:QTimerQThreadQApplication.processEvents(QEventLoop.AllEvents)

最神奇的是,在PyCharm里,用调试模式,就不假死,用运行模式(包括打包后的生产环境)就会假死。

阅读 4.8k
2 个回答

建议前端想调用后端python方法的话,像做个单机软件这种的,还是用python写个SocketServer供前端调用比较靠谱,或者你用tornado写个web小服务。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题