pyqt5 *.page().runJavaScript的理解

本文介绍了PyQT5中的PyQt5.QtWebEngineWidgets.QWebEngineView类,特别是如何使用.runJavaScript方法来操作HTML网页的行为。通过对.runJavaScript的探讨,读者将了解如何在PyQT5应用中与网页进行交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题 pyqt5 中的PyQt5.QtWebEngineWidgets.QWebEngineView类

1.pyqt5关于html网页的行为

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


################################################
#######创建主窗口
################################################
class MainWindow(QDialog):
    def __init__(self,parent=None):
        super(MainWindow,self).__init__(parent)
        self.setWindowTitle('My Browser')
        #self.showMaximized()
        self.setGeometry(100,100,400,400)

        self.button=QPushButton("get")
        self.webview = QWebEngineView()
        self.layout=QVBoxLayout()
        self.setLayout(self.layout)#设置垂直布局

        #嵌入html代码
        self.webview.setHtml("""
        <html>
            <head>
                <title> My browser </title>
            </head>
            <body>
                <label for="number">number:</label>
                <input type="text" name="number" id="number">
                <p />
                <input type="text" name="lab" id="labnumber">
            </body>
        </html>
        """)

        #将各控件加入到布局中
        self.layout.addWidget(self.webview)
        self.layout.addWidget(self.button)
        self.button.clicked.connect(self.complete_name)#点击按钮后调用javascript代码

    def complete_name(self):
        #javaScript语句,用来控制html的行为(让网页动起来)
        js_string = '''
        function myFunction()
        {
            var number = document.getElementById('number').value;
            document.getElementById('labnumber').value = number;
            return number;
        }

        myFunction();
        '''
        
        #page()函数获得一个QWebEnginePage对象,就可以访问整个web界面了.
        #runJavaScript(JavaScript代码,回调函数)
        #如果只注意网页的变化,也可不写回调函数。因为网页的行为只与javaScript代码有关
        self.webview.page().runJavaScript(js_string, self.js_callback)

    # 回调函数
    def js_callback(self, result):
        print(result)#result的值为javaScript 函数的返回值(return number;)
        #QMessageBox.information(self, "提示", str(result))


################################################
#######程序入门
################################################
if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值