runJavaScript 的说明

QWebEnginePage 有一个 runJavaScript 方法,支持回调函数。

使用方法1
只运行JavaScript,没有回调

   def run_js(self):js_string = '''alert("hello,world!");'''self.webview.page().runJavaScript(js_string)

使用方法2
运行JavaScript,并存在回调

    def run_js2(self):js_string = '''function myFunction(){return document.body.scrollWidth;}myFunction();'''self.webview.page().runJavaScript(js_string , self.js_callback)# 回调函数def js_callback(self,result):print(result)QMessageBox.information(self, "提示", str(result))

完整代码,如下所示。

【如下代码,完全复制,直接运行,即可使用】

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
################################################
#######创建主窗口
################################################
class MainWindow(QMainWindow):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)self.setWindowTitle('My Browser')self.showMaximized()#####放入WebEngineViewself.webview = WebEngineView()self.webview.load(QUrl("https://www.baidu.com"))self.setCentralWidget(self.webview)#####web页面加载完毕,调用函数self.webview.page().loadFinished.connect(self.run_js)self.webview.page().loadFinished.connect(self.run_js2)########运行js脚本,没有回调########def run_js(self):js_string = '''alert("hello,world!");'''self.webview.page().runJavaScript(js_string)########运行js脚本,有回调########def run_js2(self):js_string = '''function myFunction(){return document.body.scrollWidth;}myFunction();'''self.webview.page().runJavaScript(js_string , self.js_callback)# 回调函数def js_callback(self,result):print(result)QMessageBox.information(self, "提示", str(result))################################################
#######创建浏览器
################################################
class WebEngineView(QWebEngineView):windowList = []# 重写createwindow()def createWindow(self, QWebEnginePage_WebWindowType):new_webview =   WebEngineView()new_window = MainWindow()new_window.setCentralWidget(new_webview)#new_window.show()self.windowList.append(new_window)  #注:没有这句会崩溃return new_webview################################################
#######程序入门
################################################
if __name__ == "__main__":app = QApplication(sys.argv)w = MainWindow()w.show()sys.exit(app.exec_())

本文如有帮助,敬请留言鼓励。
本文如有错误,敬请留言改进。

pyqt5的runJavaScript 使用模板相关推荐

  1. python项目实战:pyqt5实现登录界面模板

    2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家介绍一个利用开发登录界面模板,基于pyqt5库,pyqt5这也一个PythonGUI界面开发的库,非常强大,关 ...

  2. 基于PyQt5的快速开发模板系统-Excle数据批量导入及导出表格数据为Excle

    基于Python和PyQt5的快速开发模板系统-Excle数据批量导入显示及表格数据导出 基于PyQt5按钮控制实现excle数据批量导入及当前表格存在数据的批量导出,可在此基础上进行功能扩展. 1. ...

  3. python调用小票打印机_PyQt5中使用Qprinter打印热敏小票

    在<PyQt5中使用QWebChannel和内嵌网页进行js交互>一文中,我记录了如何使用QWebchannel与内嵌网页进行js交互,其根本目标在于使用Qt5调起打印机服务.在这篇文章中 ...

  4. python打印小票_PyQt5中使用Qprinter打印热敏小票

    在<PyQt5中使用QWebChannel和内嵌网页进行js交互>一文中,我记录了如何使用QWebchannel与内嵌网页进行js交互,其根本目标在于使用Qt5调起打印机服务.在这篇文章中 ...

  5. pyqt5 listview 不默认选中_pyqt5 商店小票打印的实现模板

    说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...

  6. 【pyqt5】——入门级模板(ui文件+ui转py文件+逻辑py文件)(消息提示框)

    目录 1.ui文件 2.ui转py文件 3.逻辑py文件 4.实例 1)ui文件--demo.ui 2)ui转py文件--demo.py 3)逻辑py文件--demoLogic.py 4)运行结果 1 ...

  7. pyqt5 商店小票打印的实现模板

    说明 最近在用pyqt5做商店小票打印,用的是得力DL-581PW(NEW)热敏小票打印机. 商店小票打印,属于escpos打印. 在网上找了很多实现方法,看了很多相关文章,经历了很多困难,最后终于实 ...

  8. pyqt5多窗口之间转换调用--比较好的一个模板

    我好久没写pyqt的东西了,突然有个朋友问我,窗口之间的调用如何,有例子吗?于是我网上找了一下,觉得很多人写的都比较乱,找了一会,没找到好的,于是就打算自己写,还花了一点的时间,于是写下来,以后自己可 ...

  9. python漂亮gui界面模板下载_Python GUI教程(十六):在PyQt5中美化和装扮图形界面...

    在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言.其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式, ...

最新文章

  1. 使用maven profile 构建不同环境引用不同的值
  2. 从字母数字字符串中提取数字
  3. 淘宝API调用 申请 获取session key
  4. 尼尔机器人技能快捷键_《尼尔机械纪元》连招操作技巧
  5. mysql 全局排序 取第n条_MySQL分组排序取前N条记录 以及 生成自动数字序列 的SQL...
  6. web前端面试题(关于闭包)
  7. 苏格拉底的爱情与婚姻观
  8. 手动连接wifi失败分析
  9. tf.Keras.Model类总结
  10. 程序员是学历与能力,哪个重要呢?本文告诉你!
  11. Android M 动态权限获取
  12. 【Java设计模式 规范与重构】 三 大型重构的手段:高内聚,低耦合
  13. Java版漏斗计时器_教程/漏斗 - Minecraft Wiki,最详细的官方我的世界百科
  14. GAN生成对抗网络合集(三):InfoGAN和ACGAN-指定类别生成模拟样本的GAN(附代码)
  15. 需求工程:软件建模与分析 读书笔记
  16. isis-概述及实验
  17. 宁德时代发布第一代钠离子电池;霍尼韦尔宣布多项全球性高管人事任命 | 美通社头条...
  18. 2013版VBA帮助文档
  19. 2021年美容师(初级)考试总结及美容师(初级)试题及解析
  20. 人工智能专栏第一讲-什么是人工智能/人工智能的历史/人工智能的发展路径/人工智能的发展趋势

热门文章

  1. linux主机监控命令-top
  2. iptables01
  3. python入门-简单的文件备份程序
  4. Centos6.8 搭建Lvs+Keepalived
  5. UE4: 学习虚幻引擎4的16条准则
  6. 注解的原理又是怎么一回事
  7. PHP实现对MongoDB的基础操作
  8. 解决Word 2007中更新整个目录后分节符消失问题
  9. WebSocket科普
  10. LeetCode 1663. 具有给定数值的最小字符串