使用PyQt5在浏览器中实现网页检查

问题描述 投票:0回答:3

PyQt5 不再支持 QtWebKit。

虽然 QtWebEngineWidgets 中有一些 QtWebKit 类的替代品。但是,我找不到 PyQt4 中可用的 QWebInspector 类的任何替代品。

是否有任何这样的类,甚至任何其他选项,以便我可以使用 PyQt5 实现 Web 检查器?

编辑:Qt5.6 及更高版本已删除 QtWebKitWidgets

python-3.x pyqt pyqt5
3个回答
2
投票

我有点惊讶地发现QtWebKit 正在卷土重来。它仍然不是 Qt-5.6 或 Qt-5.7 的一部分,但似乎它可能会继续作为单独的项目进行维护。这意味着 PyQt5 可以继续支持 QtWebKit,尽管 Qt5 官方文档说它已被删除。

根据您的平台,这可能意味着如果您想在 PyQt5 中使用“新”QtWebKit 模块,您可能需要安装一些额外的软件包。

PS:

至于 QtWebEngine - 如果您使用的是 ubuntu/debian,似乎您将不得不等待它被支持。请参阅错误#1579265


1
投票

我展示了以下在 PyQt5 版本 5.7.1 中使用 QWebInspector 的示例

from PyQt5.QtCore import QUrl
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWebKitWidgets import QWebView, QWebInspector
from PyQt5.QtWidgets import QApplication, QSplitter, QVBoxLayout, QWidget


class Window(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent=parent)
        self.view = QWebView(self)
        self.view.settings().setAttribute(
            QWebSettings.DeveloperExtrasEnabled, True)
        self.inspector = QWebInspector()
        self.inspector.setPage(self.view.page())
        self.inspector.show()
        self.splitter = QSplitter(self)
        self.splitter.addWidget(self.view)
        self.splitter.addWidget(self.inspector)
        layout = QVBoxLayout(self)
        layout.addWidget(self.splitter)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = Window()
    window.view.load(QUrl('http://www.google.com'))
    window.show()
    sys.exit(app.exec_())


0
投票

我尝试运行上面的代码,但收到此错误“Traceback(最近一次调用最后): 文件“/home/student/Documents/inspect.py”,第 4 行,位于 从 PyQt5.QtWebEngineWidgets 导入 QWebEngineInspector ImportError:无法从“PyQt5.QtWebEngineWidgets”导入名称“QWebEngineInspector”(/usr/lib/python3/dist-packages/PyQt5/QtWebEngineWidgets.abi3.so)”

© www.soinside.com 2019 - 2024. All rights reserved.