PyQt5 不再支持 QtWebKit。
虽然 QtWebEngineWidgets 中有一些 QtWebKit 类的替代品。但是,我找不到 PyQt4 中可用的 QWebInspector 类的任何替代品。
是否有任何这样的类,甚至任何其他选项,以便我可以使用 PyQt5 实现 Web 检查器?
编辑:Qt5.6 及更高版本已删除 QtWebKitWidgets
我有点惊讶地发现QtWebKit 正在卷土重来。它仍然不是 Qt-5.6 或 Qt-5.7 的一部分,但似乎它可能会继续作为单独的项目进行维护。这意味着 PyQt5 可以继续支持 QtWebKit,尽管 Qt5 官方文档说它已被删除。
根据您的平台,这可能意味着如果您想在 PyQt5 中使用“新”QtWebKit 模块,您可能需要安装一些额外的软件包。
PS:
至于 QtWebEngine - 如果您使用的是 ubuntu/debian,似乎您将不得不等待它被支持。请参阅错误#1579265。
我展示了以下在 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_())
我尝试运行上面的代码,但收到此错误“Traceback(最近一次调用最后): 文件“/home/student/Documents/inspect.py”,第 4 行,位于 从 PyQt5.QtWebEngineWidgets 导入 QWebEngineInspector ImportError:无法从“PyQt5.QtWebEngineWidgets”导入名称“QWebEngineInspector”(/usr/lib/python3/dist-packages/PyQt5/QtWebEngineWidgets.abi3.so)”