zoukankan      html  css  js  c++  java
  • PyQt5.9 Html与本地代码交互实例

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

    要点:

    1. 创建交互对象, 基于QObject, 定义信息槽
    2. 创建QWebChannel, 在channel中注册交互对象
    3. 设置页面WebChannel
    4. 定义网页
      • 在网页中包含qwebchannel.js
      • 在DomReady时, 创建js QWebChannel, 连接到本地对象

    实例:

    一. 创建Html文件

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="qwebchannel.js"></script>
        <title>QWebChannel测试</title>
        <script>
            window.onload = function () {
                new QWebChannel(qt.webChannelTransport, function (channel) {
                    window.pyjs = channel.objects.pyjs;
                    alert(pyjs.myHello())
                });
            }
        </script>
    </head>
    <body>    
    </body>
    </html>

    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):
            print('call received')
            return 'hello, Python'
    
    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:/qt5/201709/webengine/test.html"
        view.load(QUrl(url_string))
        view.show()
        sys.exit(app.exec_())

     问题:

    在PyQt5.9中, QWebEngineView响应调用pyqtSlot时, 没有返回值, 返回null. 没有查到相应文档

  • 相关阅读:
    notepad++中使用正则表达式
    python 使用多线程
    EMS查看及修改邮箱发送和接受邮件大小的方法
    EMS修改邮箱容量限制的方法
    EMS查看邮箱容量限制的方法
    EMS批量为用户分配邮箱
    EMS已有用户分配邮箱方法
    EMS创建独立新用户并分配邮箱
    【转载】【zabbix】自定义监控项key值
    Centos6.9 安装zabbix3.4 过程
  • 原文地址:https://www.cnblogs.com/yaoyu126/p/7524625.html
Copyright © 2011-2022 走看看