欢迎访问宙启技术站
智能推送

PyQt5.QtWebEngineWidgetsQWebEnginePage()简介及使用方法

发布时间:2024-01-05 21:20:18

PyQt5.QtWebEngineWidgets.QWebEnginePage() 是 PyQt5.QtWebEngineWidgets 模块中的一个类,用于显示和管理 Web 内容。

QWebEnginePage 类提供了一种在 PyQt5 应用程序中显示 Web 内容的方法。它可以加载和渲染网页,与用户交互,并支持与 JavaScript 交互。

使用方法:

1. 创建 QWebEnginePage 对象:

   page = PyQt5.QtWebEngineWidgets.QWebEnginePage()
   

2. 设置 Web 页面的 URL:

   page.setUrl(PyQt5.QtCore.QUrl("http://www.example.com"))
   

3. 加载 Web 内容:

   page.load(PyQt5.QtCore.QUrl("http://www.example.com"))
   

4. 渲染和显示 Web 内容:

   view = PyQt5.QtWebEngineWidgets.QWebEngineView()
   view.setPage(page)
   view.show()
   

5. 根据需要与 Web 页面交互:

- 执行 JavaScript 代码:

     page.runJavaScript("document.getElementById('demo').innerHTML = 'Hello, World!'")
     

- 获取当前页的 HTML 源码:

     def htmlReceived(html):
         print(html)
     page.toHtml(htmlReceived)
     

6. 处理 Web 页面事件:

- 在页面加载完成后执行自定义函数:

     def pageLoaded(ok):
         if ok:
             print("Page loaded successfully!")
     page.loadFinished.connect(pageLoaded)
     

使用例子:

以下是一个简单的 PyQt5 应用程序的示例,演示了如何使用 QWebEnginePage 加载和显示 Web 内容,并与 JavaScript 进行交互:

import sys
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建 QWebEnginePage 对象
        self.page = QtWebEngineWidgets.QWebEnginePage()

        # 设置 Web 页面的 URL
        self.page.setUrl(QtCore.QUrl("http://www.example.com"))

        # 创建 QWebEngineView 对象,并设置 QWebEnginePage
        self.view = QtWebEngineWidgets.QWebEngineView(self)
        self.view.setPage(self.page)

        # 根据需要与 Web 页面交互
        self.page.runJavaScript("document.getElementById('demo').innerHTML = 'Hello, World!'")
        self.page.toHtml(self.htmlReceived)

        # 设置窗口大小和标题
        self.resize(800, 600)
        self.setWindowTitle("Web Page Example")

        # 在窗口中显示 QWebEngineView
        self.setCentralWidget(self.view)

    def htmlReceived(self, html):
        print(html)

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

运行以上代码,将会在一个具有 800x600 大小的窗口中显示 "http://www.example.com" 这个网页,并在控制台输出该网页的 HTML 源码。同时,页面中的一个 id 为 "demo" 的元素将被设置为 "Hello, World!"。

这是一个基本的例子,更多关于 QWebEnginePage 类的使用方法,可以参考 PyQt5 和 QtWebEngine 的官方文档。