PyQT5 (六十五) PyQt5 调用 Javascript代码 的案例 PyQt5 和 Javascript 交互

 PyQt5 调用 Javascript代码 的案例
PyQt5 和 Javascript 交互
什么叫交互
互相调用
PyQt5 <--> Javascript

tt.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试JS表单页面</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>
<h1>测试JS表单</h1>
<form action="get">
    <label for="firstname">姓:</label>
    <input type="text" name="firstname" id="firstname"/>
    <br>
    <label for="lastname">名:</label>
    <input type="text" name="lastname" id="lastname"/>
    <br>
    <label for="fullname">姓名:</label>
    <input type="text" name="fullname" id="fullname"/>
    <br>
    <input type="submit" id="submit_btn" style="display:none;">
</form>

</body>
</html>

import os
import sys

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QPushButton, QMessageBox, QApplication, QVBoxLayout, QWidget

'''
PyQt5 调用 Javascript代码 的案例
PyQt5 和 Javascript 交互
什么叫交互
互相调用
PyQt5 <--> Javascript

'''

class PyQtCallJSDemo(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置定位和左上角坐标
        self.setGeometry(300, 300, 360, 260)
        # 设置窗口标题
        self.setWindowTitle('PyQt5 调用 Javascript代码 的演示')
        # 设置窗口图标
        # self.setWindowIcon(QIcon('../web.ico'))

        self.layout = QVBoxLayout()
        self.browser = QWebEngineView()
        url = os.getcwd()+'/tt.html'
        # print(url)
        self.browser.load(QUrl.fromLocalFile(url))
        # self.setCentralWidget(self.browser)
        self.layout.addWidget(self.browser)

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

    # 用于获取返回值的回调函数
    def js_callback(self,result):
        print(result)

    # 执行js的函数,传参数,并获取返回值
    def fullname(self):
        self.value = '李 成龙'
        self.browser.page().runJavaScript('fullname("'+self.value+'");',self.js_callback)



if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 设置应用图标
    app.setWindowIcon(QIcon('../web.ico'))
    w = PyQtCallJSDemo()
    w.show()
    sys.exit(app.exec_())

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值