【问题标题】:What is the alternative to QWebInspector in Qt WebEngine?Qt WebEngine 中 QWebInspector 的替代品是什么?
【发布时间】:2020-03-12 07:55:31
【问题描述】:

代码sn-p的例子在这里:

from PySide2 import QtCore, QtGui, QtWidgets, QtWebChannel
from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings

class AppWindow(QtWidgets.QMainWindow):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.view = WebView(self)
        self.setCentralWidget(self.view)
        self.view.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
        self.view.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True);
        self.page = self.view.page()
        self.page.setDevToolsPage(self.page)

        #self.inspector = QWebInspector(self) # Crash is here!!!
        #self.inspector.setPage(self.page)
        #self.inspector.hide()

以上三行在以前的版本中运行良好。

PySide2 中QWebInspector 的替代品是什么?

【问题讨论】:

    标签: python python-3.x pyside2 web-inspector qwebengineview


    【解决方案1】:

    QWebEngine 没有等效的QWebInspector 类,因为开发工具是由底层 Chrome 浏览器提供的。需要设置环境变量以启用这些工具,然后您可以通过单独的基于 Chrome 的浏览器访问它们 - 有关完整详细信息,请参阅 Qt5 文档中的Qt WebEngine Developer Tools。

    以下是基于您的示例代码的简单演示:

    import sys, os
    
    DEBUG_PORT = '5588'
    DEBUG_URL = 'http://127.0.0.1:%s' % DEBUG_PORT
    os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = DEBUG_PORT
    
    from PySide2 import QtCore, QtGui, QtWidgets, QtWebChannel
    from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEngineSettings
    
    class AppWindow(QtWidgets.QMainWindow):
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.view = QWebEngineView(self)
            self.setCentralWidget(self.view)
            self.view.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
            self.view.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
    
            self.view.loadFinished.connect(self.handleLoaded)
            self.view.load(QtCore.QUrl('https://google.com/'))
    
            self.inspector = QWebEngineView()
            self.inspector.setWindowTitle('Web Inspector')
            self.inspector.load(QtCore.QUrl(DEBUG_URL))
    
        def handleLoaded(self, ok):
            if ok:
                self.view.page().setDevToolsPage(self.inspector.page())
                self.inspector.show()
    
    app = QtWidgets.QApplication(sys.argv)
    win = AppWindow()
    win.setGeometry(600, 100, 600, 480)
    win.show()
    app.exec_()
    

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 2011-05-07
      • 2012-04-24
      • 2019-12-03
      • 2010-09-17
      • 2012-03-27
      • 2012-09-30
      • 2010-10-20
      • 2014-03-12
      相关资源
      最近更新 更多