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

时间:2017-01-02 20:26:20

标签: python-3.x pyqt pyqt5

PyQt5不再支持QtWebKit。

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

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

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

2 个答案:

答案 0 :(得分:2)

我有点惊讶地发现QtWebKit is making a comeback。它仍然不是Qt-5.6或Qt-5.7的一部分,但它似乎可以继续作为单独的项目维护。这意味着PyQt5可以继续支持QtWebKit,即使官方的Qt5文档说它已被删除。

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

PS:

至于QtWebEngine - 如果你正在使用ubuntu / debian,你似乎必须等待它得到支持。请参阅Bug #1579265

答案 1 :(得分: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_())

enter image description here