QT程序与html交互(一)------QWebEngineView类

简述:QWebView继承自Widget,提供一个浏览和编辑网页文件的窗口部件,用于实时显示网页文件的内容。

简单使用范例:

      QWebEngineView *view = new QWebEngineView(parent);
      view->load(QUrl("http://qt-project.org/"));
      view->show();

其中,load()可用于加载网页地址,使用show()激活显示出来;

信号:

loadStarted()信号: 开始加载时发射;
loadProgress()信号:读取完一个页面元素发射一次,如div元素;
loadFinished()信号:加载完全发射一次。

方法:

title(),用于获取HTML的title
QWebEngineViewQt 提供的一个用于显示 Web 内容的组件,它基于 Chromium 内核,支持现代 Web 技术和 HTML5 标准。 如果要在 QWebEngineView 中与 Qt 进行交互,可以通过以下几个步骤实现: 1. 创建一个 QWebEnginePage 子,重写其 createWindow 方法,用于拦截新窗口的打开。 2. 在 QWebEngineView 中设置该 QWebEnginePage 子的实例,以便在浏览器中打开链接时能够被拦截。 3. 使用 Qt 的信号和槽机制,在 QWebEnginePage 子中处理与 Qt交互事件。 下面是一个简单的例子,演示如何在 QWebEngineView 中与 Qt 进行交互: ```python from PyQt5.QtCore import QUrl, pyqtSlot from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage from PyQt5.QtWidgets import QApplication import sys class MyWebEnginePage(QWebEnginePage): def __init__(self, parent=None): super().__init__(parent) def createWindow(self, QWebEnginePage_WebWindowType): new_page = MyWebEnginePage(self) new_view = QWebEngineView() new_view.setPage(new_page) new_view.show() return new_page @pyqtSlot(str) def js_callback(self, result): print(result) if __name__ == '__main__': app = QApplication(sys.argv) view = QWebEngineView() page = MyWebEnginePage(view) view.setPage(page) view.load(QUrl("https://www.baidu.com")) # 注册一个 JavaScript 回调函数 page.runJavaScript("window.my_callback = function(result) {pyjsqt.js_callback(result)}") sys.exit(app.exec_()) ``` 在这个例子中,我们创建了一个名为 MyWebEnginePage 的 QWebEnginePage 子,它重写了 createWindow 方法,用于在打开新窗口时拦截并创建新的 QWebEnginePage 实例。 同时,我们在 MyWebEnginePage 中注册了一个名为 js_callback 的 Python 回调函数,在 JavaScript 中可以通过 window.my_callback 来调用该回调函数,并传递一个字符串参数。 在主程序中,我们创建了一个 QWebEngineView 实例,并使用 MyWebEnginePage 的实例作为其页面。然后,我们通过 QWebEnginePage 的 runJavaScript 方法注册了一个 JavaScript 回调函数,并在其中调用了 MyWebEnginePage 中的 Python 回调函数。 当在浏览器中打开一个链接时,如果该链接指向一个新的窗口,MyWebEnginePage 的 createWindow 方法将会被触发,我们将会创建一个新的 QWebEngineView 实例,并将其设置为新的 QWebEnginePage 的页面,从而达到在同一个程序中打开新窗口的效果。 当 JavaScript 回调函数被触发时,它将会调用 MyWebEnginePage 的 Python 回调函数,从而实现了在 QWebEngineView 中与 Qt交互
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值