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 的官方文档。
