84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我用QWebEngineView加载一个url后,直接点击链接没有任何反应,要在链接上右键点击,然后通过菜单的Follow Link才能打开。初学Qt能力有限,找了QWebEngineView和QWebEnginePage的文档愣是没看到有相关的方法,求大家帮忙看看。
网上资料太少了,全是QWebView的,可是我用的是Qt5.6,已经没有这个模块了。
业精于勤,荒于嬉;行成于思,毁于随。
在QWebEngineView中有下面的方法:
QWebEngineView
QWebEngineView *QWebEngineView::createWindow(QWebEnginePage::WebWindowType type)
在鼠标左键点击的时候会触发这个方法,你把它重载一下,用你自己的实现就可以了。
这个bug与createWindow函数好像没关系。在QWebEngineView里面,用户点击网页的链接时,会触发信号:urlChanged(QUrl)但是QWebEngineView不会自动去加载新的链接。
所以需要自己为urlChanged(QUrl)新建一个槽函数,自己手动加载参数里的新链接。比如:
connect(m_pView, SIGNAL(urlChanged(QUrl)), this, SLOT(onUrlChanged(QUrl)));
//网页链接地址//用户点击网页触发//QWebEngineView有毛病,用户点击网页里的链接时,只触发urlChanged(QUrl)信号//不自动加载新链接网页,需要手动加载void MainWindow::onUrlChanged(const QUrl &url){
//地址栏的旧网址 QUrl old = QUrl( m_pURLEdit->text() ); //链接有变化才更新,用户点击网页里的新链接会触发 if(url != old) { m_pURLEdit->setText( url.toString() ); //用户点击了新网页,但是没自动加载,手动刷新 m_pView->load(url);//要放在if判断内部,否则容易无限刷新,死循环 } qDebug()<
}
**
在
QWebEngineView
中有下面的方法:在鼠标左键点击的时候会触发这个方法,你把它重载一下,用你自己的实现就可以了。
这个bug与createWindow函数好像没关系。
在QWebEngineView里面,用户点击网页的链接时,会触发信号:
urlChanged(QUrl)
但是QWebEngineView不会自动去加载新的链接。
所以需要自己为urlChanged(QUrl)新建一个槽函数,自己手动加载参数里的新链接。
比如:
//网页链接地址
//用户点击网页触发
//QWebEngineView有毛病,用户点击网页里的链接时,只触发urlChanged(QUrl)信号
//不自动加载新链接网页,需要手动加载
void MainWindow::onUrlChanged(const QUrl &url)
{
}
**
示例代码: http://pan.baidu.com/s/1gfc7BXp
**