在网页调用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端的方法不能马上返回结果,就会导致网页端假死。
用了几种技术,也解决不了,包括:QTimer
,QThread
,QApplication.processEvents(QEventLoop.AllEvents)
最神奇的是,在PyCharm
里,用调试
模式,就不假死,用运行
模式(包括打包后的生产环境)就会假死。
建议前端想调用后端python方法的话,像做个单机软件这种的,还是用python写个SocketServer供前端调用比较靠谱,或者你用tornado写个web小服务。