最近 Qt 引入了该QtWebEngine
模块。有没有办法调用开发者工具和调试里面的 JavaScript 代码QWebEngineView
?可以QWebView
使用
page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
但我在QWebEngineView
.
最近 Qt 引入了该QtWebEngine
模块。有没有办法调用开发者工具和调试里面的 JavaScript 代码QWebEngineView
?可以QWebView
使用
page()->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
但我在QWebEngineView
.
我只是遇到了这个,所以我在这里添加它以供后代使用。
它刚刚被添加到 Qt 5.5 git 中。您必须通过环境变量启用它QTWEBENGINE_REMOTE_DEBUGGING=<port>
。0.0.0.0:<port>
如果您正在调试嵌入式设备并且无法使用本地控制台,您可以放置。然后你可以点 can connect to http://127.0.0.1 : 来获取调试器。它需要是基于铬的浏览器。您是否必须使用 Chrome,或者如果您愿意,您可以实际使用“快速纳米浏览器”示例。
或者,可以嵌入Firebug Lite以获得 JavaScript 控制台和检查器。
只需添加
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
进入页面。按 F12 将显示 Firebug 控制台。
来自http://blog.qt.io/blog/2015/03/17/qt-5-5-alpha-available/:
远程检查器可以通过定义环境变量 QTWEBENGINE_REMOTE_DEBUGGING 或通过提供 –remote-debugging-port 命令行参数来使用。然后,您可以将浏览器指向指定的端口并检查您的 Web 内容。
如果你的 devtools 视图和页面在同一个程序中,使用 qt 函数直接导航到 devtools 页面,而不是http://localhost:port
devtools 索引(必须选择哪个页面的 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
参考:
对于 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())
看这个:</p>
Chromium DevTools 提供检查和调试任何 Web 内容的布局和性能问题的能力
https://doc.qt.io/qt-5/qtwebengine-features.html#chromium-devtools