c – QWebEngineView在外部浏览器中打开

c – QWebEngineView在外部浏览器中打开,第1张

概述我正在将我的代码从QtWebKit移动到QtWebEngine.总的来说,过渡相当顺利,但是,我坚持一个特定的问题.我使用QWebEngineView显示Google Maps页面.放置的一些标记有信息窗口,d出“单击此处获取更多信息”,在外部浏览器中打开链接. 使用QtWebKit,通过setLinkDelegation策略可以轻松实现.但是,这里似乎有点复杂.我试图按照这个例子,但不知怎的,我 我正在将我的代码从QtWebKit移动到QtWebEngine.总的来说,过渡相当顺利,但是,我坚持一个特定的问题.我使用QWebEngineVIEw显示Google Maps页面.放置的一些标记有信息窗口,d出“单击此处获取更多信息”,在外部浏览器中打开链接.

使用QtWebKit,通过setlinkDelegation策略可以轻松实现.但是,这里似乎有点复杂.我试图按照这个例子,但不知怎的,我需要在QWebEngineVIEw中重新定义QWebEnginePage.以下是我到目前为止所提出的内容.知道如何实际连接这一切吗?

谢谢

#ifndef MYQWEBENGINEVIEW_H#define MYQWEBENGINEVIEW_H#include <QWebEngineVIEw>#include <QDesktopServices>class MyQWebEnginePage : public QWebEnginePage{    Q_OBJECTpublic:    MyQWebEnginePage(QObject* parent = 0) : QWebEnginePage(parent){}    bool acceptNavigationRequest(const QUrl & url,QWebEnginePage::NavigationType type,bool isMainFrame)    {         qDeBUG() << "acceptNavigationRequest("<<url << "," << type << "," << isMainFrame<<")";        if (type == QWebEnginePage::NavigationTypelinkClicked)        {            QDesktopServices::openUrl(url);            return false;        }        return true;    }};class MyQWebEngineVIEw : public QWebEngineVIEw{    Q_OBJECTpublic:    MyQWebEngineVIEw(QWidget* parent = 0);    MyQWebEnginePage* page() const;};#endif // MYQWEBENGINEVIEW_H
解决方法 你不需要第二部分.试试这个:

QWebEngineVIEw *vIEw = new QWebEngineVIEw();MyQWebEnginePage *page = new MyQWebEnginePage();vIEw->setPage(page);
总结

以上是内存溢出为你收集整理的c – QWebEngineView在外部浏览器中打开全部内容,希望文章能够帮你解决c – QWebEngineView在外部浏览器中打开所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存