25

最近 Qt 引入了该QtWebEngine模块。有没有办法调用开发者工具和调试里面的 JavaScript 代码QWebEngineView?可以QWebView使用

page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);

但我在QWebEngineView.

4

6 回答 6

23

我只是遇到了这个,所以我在这里添加它以供后代使用。

它刚刚被添加到 Qt 5.5 git 中。您必须通过环境变量启用它QTWEBENGINE_REMOTE_DEBUGGING=<port>0.0.0.0:<port>如果您正在调试嵌入式设备并且无法使用本地控制台,您可以放置​​。然后你可以点 can connect to http://127.0.0.1 : 来获取调试器。它需要是基于铬的浏览器。您是否必须使用 Chrome,或者如果您愿意,您可以实际使用“快速纳米浏览器”示例。

于 2015-04-18T18:28:55.663 回答
10

或者,可以嵌入Firebug Lite以获得 JavaScript 控制台和检查器。

只需添加

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

进入页面。按 F12 将显示 Firebug 控制台。

于 2015-05-04T15:18:20.807 回答
1

来自http://blog.qt.io/blog/2015/03/17/qt-5-5-alpha-available/

远程检查器可以通过定义环境变量 QTWEBENGINE_REMOTE_DEBUGGING 或通过提供 –remote-debugging-port 命令行参数来使用。然后,您可以将浏览器指向指定的端口并检查您的 Web 内容。

于 2015-05-04T14:34:04.853 回答
1

如果你的 devtools 视图和页面在同一个程序中,使用 qt 函数直接导航到 devtools 页面,而不是http://localhost:portdevtools 索引(必须选择哪个页面的 devtools)。

QTWEBENGINE_REMOTE_DEBUGGING设置好后

>=5.13

void QWebEnginePage::setDevToolsPage(QWebEnginePage *devToolsPage)

5.11~5.12

void QWebEnginePage::setInspectedPage(QWebEnginePage *page)

样本pyqt5.12

dev_view = QWebEngineView()  # new web view
self.page().setDevToolsPage(dev_view.page())  # self is the source web view

参考:

https://doc.qt.io/qt-5/qwebenginepage.html#setDevToolsPage

https://doc.qt.io/qt-5/qwebenginepage.html#setInspectedPage

于 2020-07-07T03:03:35.780 回答
1

对于 PyQt5,以下代码段:

        self.mainLayout = QtWidgets.QVBoxLayout()
        self.webView = QtWebEngineWidgets.QWebEngineView()
        self.mainLayout.addWidget(self.webView, 100)

        self.webView.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.JavascriptEnabled, True)
        self.webView.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.LocalContentCanAccessRemoteUrls, True)
        self.webView.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.ErrorPageEnabled, True)
        self.webView.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.PluginsEnabled, True)



        dev_view = QtWebEngineWidgets.QWebEngineView()
        self.mainLayout.addWidget(dev_view, 100)
        self.webView.page().setDevToolsPage(dev_view.page())
于 2020-07-31T21:17:57.857 回答
0

看这个:</p>

Chromium DevTools 提供检查和调试任何 Web 内容的布局和性能问题的能力

https://doc.qt.io/qt-5/qtwebengine-features.html#chromium-devtools

于 2019-01-15T08:36:33.363 回答