Qt 发出newViewRequested信号时在外部浏览器中打开URL

Qt 发出newViewRequested信号时在外部浏览器中打开URL,qt,browser,qml,qt5,qtwebengine,Qt,Browser,Qml,Qt5,Qtwebengine,我使用WebEngineView QML类型来显示需要在新选项卡中打开某些链接的网页。链接是这样的 <a href="http://google.com" target="_blank">Go to google in new tab</a> 我想在外部浏览器中打开的URL,但没有可用于Qt.openUrlExternal(request.URL)的“URL”属性 webengineewviewrequest有一个私有成员,不能作为qml中的属性访问。 如何处理该问

我使用WebEngineView QML类型来显示需要在新选项卡中打开某些链接的网页。链接是这样的

<a href="http://google.com" target="_blank">Go to google in new tab</a>

我想在外部浏览器中打开的URL,但没有可用于
Qt.openUrlExternal(request.URL)
的“URL”属性

webengineewviewrequest
有一个私有成员,不能作为qml中的属性访问。 如何处理该问题,获取URL并在外部浏览器中打开它。 谢谢。

在Qt5中,您可以使用信号来实现这一点:

onNavigationRequested: function(request) {
    if (request.navigationType === WebEngineNavigationRequest.LinkClickedNavigation) {
        Qt.openUrlExternally(request.url)
    }
    request.action = WebEngineNavigationRequest.IgnoreRequest
}
IgnoreRequest
分配给
action
属性的一行是确保URL未在WebEngineView中打开