Use acceptNavigationRequest, when you click on the link, the default browser opens and opens the link. Although I install QWebEnginePage:
#ifndef VIEW_H #define VIEW_H #include <QMainWindow> #include <QWebEngineView> #include <QVBoxLayout> #include <QWebEnginePage> #include <QDesktopServices> namespace Ui { class view; } class MyQWebEnginePage : public QWebEnginePage { Q_OBJECT public: MyQWebEnginePage(QObject* parent = 0) : QWebEnginePage(parent){} bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool) { qDebug() << "acceptNavigationRequest("<<url << "," << type << "," << ")"; if (type == QWebEnginePage::NavigationTypeLinkClicked) { QDesktopServices::openUrl(url); return false; } return true; } }; class view : public QMainWindow { Q_OBJECT public: explicit view(QWidget *parent = 0); ~view(); private: Ui::view *ui; QVBoxLayout *layout = new QVBoxLayout(this); QWebEngineView *viewer = new QWebEngineView(this); MyQWebEnginePage *page = new MyQWebEnginePage(); private slots: }; #endif // VIEW_H cpp
#include "view.h" #include "ui_view.h" view::view(QWidget *parent) : QMainWindow(parent), ui(new Ui::view) { ui->setupUi(this); ui->centralWidget->setLayout(layout); layout->addWidget(viewer); viewer->setPage(page); viewer->load(QUrl("http://videoa.npointerro.ru")); // viewer->load(QUrl("http://google.com/")); } view::~view() { delete ui; }