pyqt5与html数据交互原理,pyqt5与本地html进行js交互
最近用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交互相关推荐
- 客户端与服务器端交互原理
客户端与服务器端交互原理 经常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来连 To ...
- android和js交互的代码,Android与JS代码交互
现如今,很多Android APP都要与JS进行交互,而WebView就是Android与JS交互的桥梁,日常中最常见Android和JS交互有:APP注册协议,APP里的文章,APP里的活动页,这都 ...
- 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 ...
- java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...
经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...
- 超详细总结:前后端数据交互原理
最近开始接触前后端的一些知识,查了很多资料,今天把互联网产品的前后端数据交互做个总结留做笔记. 互联网产品的前后端数据交互是通过一个通讯协议完成.前后台交互的协议主要包括HTTP,FTP,SMTP,T ...
- 聊天软交互原理_来自不同城市的人们如何在freeCodeCamp聊天室中进行交互
聊天软交互原理 by Déborah Mesquita 由DéborahMesquita 来自不同城市的人们如何在freeCodeCamp聊天室中进行交互 (How people from diffe ...
- lua游戏脚本实例源码_Lua与其他宿主语言交互原理剖析
Lua与其他宿主语言交互原理剖析 题外话:今天周末,刚好在家有时间就把我这次项目组内部分享的文章贴出来,分享给大家,同时也方便以后自己翻阅. 一. Lua简介 目标:Lua语言本身是用C语言来编写开发 ...
- 浅析Java web程序之客户端和服务器端交互原理
原文链接: https://www.iteye.com/topic/470019 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考 ...
- Mui --- app与服务器之间的交互原理、mui ajax使用
1.APP与服务器之间的交互原理app端(客户端)与服务端的交互其实理解起来和容易,客户端想服务器端发送请求,服务器端进行数据运算后返回最终结果.结果可以是多种格式: 1.text 文本格式 2.xm ...
最新文章
- 比特币现金BCH今日事件
- remoting和webservice的区别
- 网络故障解决方案之非标准子网划分【网管员必懂】
- 教你在Excel里做GA的水平百分比图的详细步骤(图文教程)-成为excel大师(1)...
- 函数调用过程(栈桢)
- php5 mongodb,ThinkPHP5之Mongodb使用技巧
- 非极大值抑制(non-maximum suppression)的理解与实现
- Java static的使用
- 苹果maccms V10采集插件下载全自动配置定时任务采集教程
- git操作是出现Username for 'https://github.com':的验证问题
- android 清理垃圾代码_这7个手机文件夹,让你更了解如何清理手机内存
- android代码 发警报音,Android设置多个警报
- JAVA并发十二连招,你能接住吗?
- python中def main是什么意思_Python main()函数解析
- gtk之G_LIKELY(expr)和G_UNLIKELY(expr)
- shiro 集成swagger,anon不生效问题
- 10万一平米的北京房价是如何让清华天才陨落的?
- 微软数据中心将到南非!AWS也将要跟进
- 儿童食品安全Word电子手抄报
- 计算机中丢失safeengine.dll,safeengine.dll