最近用pyqt5封装个项目。

html与python之间交互是必不可少的。

根据度娘资料,写个例子!

在PyQt5.9中, 应用QWebEngineView和QWebChannel技术, 可以进行HTML与本地代码进行交互.

要点:创建交互对象, 基于QObject, 定义信息槽

创建QWebChannel, 在channel中注册交互对象

设置页面WebChannel

定义网页在网页中包含qwebchannel.js

在DomReady时, 创建js QWebChannel, 连接到本地对象

实例:

一. 创建Html文件

QWebChannel测试

window.onload = function () {

new QWebChannel(qt.webChannelTransport, function (channel) {

window.pyjs = channel.objects.pyjs;

pyjs.myHello(alert);

});

}

this is test !

测试

function qt5test() {

pyjs.myTest('这是测试传参的',function (res) {

alert(res);

});

}

function uptext(msg) {

document.getElementById('test').innerHTML=msg;

}

qwebchannel.js源代码

二. 创建Python代码#!/usr/bin/env python

# -*- coding:utf-8 -*-

import sys

from PyQt5.QtWidgets import QApplication

from PyQt5.QtCore import QObject, pyqtSlot, QUrl

from PyQt5.QtWebChannel import QWebChannel

from PyQt5.QtWebEngineWidgets import QWebEngineView

class CallHandler(QObject):

@pyqtSlot(result = str)

def myHello(self):

view.page().runJavaScript('uptext("hello, Python");')

print('call received')

return 'hello, Python'

@pyqtSlot(str,result=str)

def myTest(self,test):

return test

if __name__ == '__main__':

app = QApplication(sys.argv)

view = QWebEngineView()

channel = QWebChannel()

handler = CallHandler()

channel.registerObject('pyjs', handler)

view.page().setWebChannel(channel)

url_string = "file:///D:/testPyQt5/html/index.html"

view.load(QUrl(url_string))

view.show()

sys.exit(app.exec_())

注意:url_string = "file:///D:/testPyQt5/html/index.html"这一句要换成自己的文件,qwebchannel.js 与 test.html 文件放在同一个目录

qt5接收js传递的参数:

pyqt中信号与槽的参数传递。

当信号与槽函数的参数数量相同时,它们参数类型要完全一致。

信号与槽不能有缺省参数。

当信号的参数与槽函数的参数数量不同时,只能是信号的参数数量多于槽函数的参数数量,且前面相同数量的参数类型应一致,信号中多余的参数会被忽略。

此外,在不进行参数传递时,信号槽绑定时也是要求信号的参数数量大于等于槽函数的参数数量。这种情况一般是一个带参数的信号去绑定一个无参数的槽函数。

可以出传递的参数类型有很多种:str、int、list、object、float、tuple、dict等等

pyqt5与html数据交互原理,pyqt5与本地html进行js交互相关推荐

  1. 客户端与服务器端交互原理

    客户端与服务器端交互原理 经常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来连 To ...

  2. android和js交互的代码,Android与JS代码交互

    现如今,很多Android APP都要与JS进行交互,而WebView就是Android与JS交互的桥梁,日常中最常见Android和JS交互有:APP注册协议,APP里的文章,APP里的活动页,这都 ...

  3. python qt5 gui快速编程_现货正版 Python Qt GUI与数据可视化编程 pyqt5教程书籍 pyqt5快速开发与实战Qt5 GUI快速编程 计算机网络程序设计人民邮电出版社...

    热销单品 查看更多 > RMB:85.00 立即购买 RMB:63.50 立即购买 RMB:73.50 立即购买 RMB:49.50 立即购买 RMB:127.80 立即购买 RMB:66.00 ...

  4. java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...

    经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...

  5. 超详细总结:前后端数据交互原理

    最近开始接触前后端的一些知识,查了很多资料,今天把互联网产品的前后端数据交互做个总结留做笔记. 互联网产品的前后端数据交互是通过一个通讯协议完成.前后台交互的协议主要包括HTTP,FTP,SMTP,T ...

  6. 聊天软交互原理_来自不同城市的人们如何在freeCodeCamp聊天室中进行交互

    聊天软交互原理 by Déborah Mesquita 由DéborahMesquita 来自不同城市的人们如何在freeCodeCamp聊天室中进行交互 (How people from diffe ...

  7. lua游戏脚本实例源码_Lua与其他宿主语言交互原理剖析

    Lua与其他宿主语言交互原理剖析 题外话:今天周末,刚好在家有时间就把我这次项目组内部分享的文章贴出来,分享给大家,同时也方便以后自己翻阅. 一. Lua简介 目标:Lua语言本身是用C语言来编写开发 ...

  8. 浅析Java web程序之客户端和服务器端交互原理

    原文链接: https://www.iteye.com/topic/470019 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考 ...

  9. Mui --- app与服务器之间的交互原理、mui ajax使用

    1.APP与服务器之间的交互原理app端(客户端)与服务端的交互其实理解起来和容易,客户端想服务器端发送请求,服务器端进行数据运算后返回最终结果.结果可以是多种格式: 1.text 文本格式 2.xm ...

最新文章

  1. 比特币现金BCH今日事件
  2. remoting和webservice的区别
  3. 网络故障解决方案之非标准子网划分【网管员必懂】
  4. 教你在Excel里做GA的水平百分比图的详细步骤(图文教程)-成为excel大师(1)...
  5. 函数调用过程(栈桢)
  6. php5 mongodb,ThinkPHP5之Mongodb使用技巧
  7. 非极大值抑制(non-maximum suppression)的理解与实现
  8. Java static的使用
  9. 苹果maccms V10采集插件下载全自动配置定时任务采集教程
  10. git操作是出现Username for 'https://github.com':的验证问题
  11. android 清理垃圾代码_这7个手机文件夹,让你更了解如何清理手机内存
  12. android代码 发警报音,Android设置多个警报
  13. JAVA并发十二连招,你能接住吗?
  14. python中def main是什么意思_Python main()函数解析
  15. gtk之G_LIKELY(expr)和G_UNLIKELY(expr)
  16. shiro 集成swagger,anon不生效问题
  17. 10万一平米的北京房价是如何让清华天才陨落的?
  18. 微软数据中心将到南非!AWS也将要跟进
  19. 儿童食品安全Word电子手抄报
  20. 计算机中丢失safeengine.dll,safeengine.dll

热门文章

  1. 初窥Linux 之 我最常用的20条命令
  2. opencv 读取CV_16U图像 c++
  3. PyFlink 开发环境利器:Zeppelin Notebook
  4. Python静态类型解析工具简介和实践
  5. 33个常见问题!超全Windows排查手册
  6. 云原生存储详解:容器存储与K8s存储卷
  7. 使用Istio进行多集群部署管理(2):单控制平面Gateway连接拓扑
  8. 大家都关注的Serverless,阿里怎么做的?
  9. MongoDB Sharding 请勿复用已删除的 namespace
  10. 打破行业壁垒!阿里云OpenSearch开启个性化搜索里程碑