Python3 PyQt5.8 QWebEngine如何使用
我最近想做一个项目,这个项目呢,需要拦截 qt 中的浏览器的 http 请求和返回信息,目前不需要做到修改,只要能够查看就行。
请求消息 可以通过实现 QWebEngineUrlRequestInterceptor 来拦截 返回信息 没有找到解决办法
望有知道的大神给指明一条路
只能用 QWebEngine 了,QWebKit 已经不再支持了。。
Python3 PyQt5.8 QWebEngine如何使用
1 回复
PyQt5的QWebEngine模块是用来嵌入Web内容的,主要包含QWebEngineView、QWebEnginePage和QWebEngineProfile这几个核心类。
基本用法很简单,先安装PyQt5和PyQtWebEngine:
pip install PyQt5 PyQtWebEngine
然后创建一个基本的浏览器窗口:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
class BrowserWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("QWebEngine示例")
self.setGeometry(100, 100, 800, 600)
# 创建Web视图
self.browser = QWebEngineView()
self.browser.setUrl(QUrl("https://www.baidu.com"))
# 设置布局
central_widget = QWidget()
layout = QVBoxLayout()
layout.addWidget(self.browser)
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = BrowserWindow()
window.show()
sys.exit(app.exec_())
如果要加载本地HTML文件,可以用file://协议:
self.browser.setUrl(QUrl.fromLocalFile("/path/to/your/file.html"))
或者直接加载HTML字符串:
self.browser.setHtml("<h1>Hello World</h1>")
JavaScript交互可以通过runJavaScript()方法:
self.browser.page().runJavaScript("alert('Hello from Python!')")
要处理页面加载事件,可以连接信号:
self.browser.loadStarted.connect(self.on_load_started)
self.browser.loadFinished.connect(self.on_load_finished)
总结建议:QWebEngine用起来跟Qt的其他组件差不多,主要是信号槽和属性设置。

