C++ 如何在QWebEngineView中模拟点击链接(QUrl)信号?
我正在将我的项目从Qt WebKit移植到Qt5.6中的Qt WebEngine。我想在QWebView上单击a href时发出C++ 如何在QWebEngineView中模拟点击链接(QUrl)信号?,c++,qt,C++,Qt,我正在将我的项目从Qt WebKit移植到Qt5.6中的Qt WebEngine。我想在QWebView上单击a href时发出linkClicked(QUrl)信号,但QWebEngineView没有信号linkClicked(QUrl) 如何模拟linkClickedSignal(QUrl) .我不确定它是否对您有用,但在我使用QWebEngineView的应用程序中,我有可单击的链接,必须在浏览器中打开相应的网站 我是这样做的: class MyQWebEnginePage : publi
linkClicked(QUrl)
信号,但QWebEngineView没有信号linkClicked(QUrl)
如何模拟linkClickedSignal(QUrl)
.我不确定它是否对您有用,但在我使用
QWebEngineView
的应用程序中,我有可单击的链接,必须在浏览器中打开相应的网站
我是这样做的:
class MyQWebEnginePage : public QWebEnginePage
{
Q_OBJECT
public:
MyQWebEnginePage(QObject* parent = 0) : QWebEnginePage(parent){}
bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool)
{
if (type == QWebEnginePage::NavigationTypeLinkClicked)
{
QDesktopServices::openUrl(url);
return false;
}
return true;
}
};
如您所见,我刚刚重新实现了
QWebEnginePage
的虚拟方法acceptNavigationRequest
,以便从单击的链接中检索url:url
。我不知道这是你想要实现的目标,但我希望这能有所帮助。谢谢你@Alexis p。我知道了
class MyWebPage : public QWebEnginePage
{
Q_OBJECT
public:
MyWebPage(QObject* parent = 0) : QWebEnginePage(parent){}
bool acceptNavigationRequest(const QUrl & url, QWebEnginePage::NavigationType type, bool)
{
if (type == QWebEnginePage::NavigationTypeLinkClicked)
{
//QDesktopServices::openUrl(url);
emit linkClicked(url);
return false;
}
return true;
}
signals:
void linkClicked(const QUrl&);
};
在我的窗口类:
webView = new QWebEngineView(ui->verticalLayoutWidget);
webView->setPage(new MyWebPage());
ui->verticalLayout->addWidget(webView);
connect(webView- >page(),SIGNAL(linkClicked(QUrl)),this,SLOT(linkClicked(QUrl)));