什么是网站静态页面,海南省住房和建设厅网站,wordpress素材模板,南京seo外包最近用pyqt5封装个项目。html与python之间交互是必不可少的。根据度娘资料#xff0c;写个例子#xff01;在PyQt5.9中, 应用QWebEngineView和QWebChannel技术, 可以进行HTML与本地代码进行交互.要点:创建交互对象, 基于QObject, 定义信息槽创建QWebChannel, 在channel中注册…最近用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).innerHTMLmsg;}qwebchannel.js源代码二. 创建Python代码#!/usr/bin/env python# -*- coding:utf-8 -*-import sysfrom PyQt5.QtWidgets import QApplicationfrom PyQt5.QtCore import QObject, pyqtSlot, QUrlfrom PyQt5.QtWebChannel import QWebChannelfrom PyQt5.QtWebEngineWidgets import QWebEngineViewclass CallHandler(QObject):pyqtSlot(result str)def myHello(self):view.page().runJavaScript(uptext(hello, Python);)print(call received)return hello, PythonpyqtSlot(str,resultstr)def myTest(self,test):return testif __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.htmlview.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等等