ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PyQt5最全68 Web之PyQt5调用JavaScript代码

2021-12-14 20:02:29  阅读:300  来源: 互联网

标签:__ Web self JavaScript PyQt5 value import fullname


PyQt5最全68 Web之PyQt5调用JavaScript代码

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
import sys
import os


class WebEngineView(QWidget):
    """
    PyQt5调用JavaScript代码
    PyQt5和JavaScrip交互

    什么叫交互
    PyQt5<->JavaScript 即互相调用内部的函数
    """

    def __init__(self):
        super(WebEngineView, self).__init__()
        self.setWindowTitle('PyQt5调用JavaScript')
        self.setGeometry(5, 30, 1355, 730)

        self.layout = QVBoxLayout()
        self.setLayout(self.layout)

        self.browser = QWebEngineView()
        url = os.getcwd() + '/pyqt5calljs.html'
        self.browser.load(QUrl.fromLocalFile(url))
        self.layout.addWidget(self.browser)

        button = QPushButton('设置全名')
        button.clicked.connect(self.fullname)
        self.layout.addWidget(button)

    # 接受js返回值 即pyqt5calljs.html文件中的fullname函数返回值
    def js_callback(self, result):
        print(result)

    def fullname(self):
        self.value = 'hello world'
        self.browser.page().runJavaScript('fullname("' + self.value + '");', self.js_callback)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = WebEngineView()
    print(main.__doc__)
    main.show()
    sys.exit(app.exec_())

对应的pyqt5calljs.html文件如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面</title>
    <script>
        function fullname(value){
            alert("<" + value + ">")
            var firstname = document.getElementById('firstname').value;
            var lastname = document.getElementById('lastname').value;
            var fullname = firstname + ' ' + lastname
            document.getElementById('fullname').value = fullname;
            document.getElementById('submit-btn').style.display = 'block';
            return fullname;
        }
    </script>
</head>
<body>
    <form>
        <label>First Name:</label>
        <input type="text" name="firstname" id="firstname"></input>
        <br/>
        <label>Last Name:</label>
        <input type="text" name="lastname" id="lastname"></input>
        <br/>
        <label>Full Name:</label>
        <input type="text" name="fullname" id="fullname"></input>
        <br/>
        <input  style="display:none;" type="submit" id="submit-btn"/>
    </form>
</body>
</html>

结果

在这里插入图片描述

标签:__,Web,self,JavaScript,PyQt5,value,import,fullname
来源: https://blog.csdn.net/m0_63993933/article/details/121938355

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有