QWebKit 的问题,解决不了就被开了,帮帮忙!!!

wylove08 2014-10-21 09:13:12
QWebPage、QWebView 访问 www.youtube.com
在网页上鼠标左键点击链接 linkClicked urlChanged 信号都没反应(特别是左边浏览视频,右边是列表链接,怎么点都没反应)。 奇怪。。。。


QWebPage* page = new MyWebPage();

page->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

ui.webView->setPage(page);
connect(ui.webView, SIGNAL(linkClicked(const QUrl &)), this, SLOT(linkClickedSlot(const QUrl &)));
connect(ui.webView, SIGNAL(urlChanged ( const QUrl & )), this, SLOT(UrlChangedSlot( const QUrl & )));

QString strUrl = "www.youtube.com";
QUrl url = QUrl::fromUserInput(strUrl);
ui.webView->load(url);


bool MyWebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)
{
QString strUrl = request.url().toString(); //当前页点击 这个返回的是 about::blank , 但ctrl + 鼠标左键,新打开一个网页 是ok的

//此处省略 按ctrl + 鼠标左键 new tab 的 代码

if (frame == mainFrame())
{
//这里进不去, 非youtube 外 ,在同一个页面打开是可以进这里的。

}

return QWebPage::acceptNavigationRequest(frame, request, type);

}

发现 youtube.com 返回的 frame 完全不一样
...全文
326 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈晓明start 2014-10-21
  • 打赏
  • 举报
回复
估计是webView里面的控件需要传信号,而不是webView。

21,480

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧