Qt5.4-QtWebEngine中如何获取网页的contentSize

Posted

技术标签:

【中文标题】Qt5.4-QtWebEngine中如何获取网页的contentSize【英文标题】:How to get the contentSize of a web page in Qt5.4-QtWebEngine 【发布时间】:2014-10-09 12:49:14 【问题描述】:

我正在使用带有模块 QtWebEngine 的新 Qt5.4,从我看到的 mainFrame() 不再存在。如何获取页面的 contentSize/size 以及现在如何渲染?我尝试了 setView 和 view 但不起作用。

【问题讨论】:

【参考方案1】:

我找不到任何原生 Qt 方法,但我想出了一个解决方法: 加载页面后,我将执行以下操作以将我的小部件调整为 Web 内容:

webView->page()->runjavascript("document.documentElement.scrollWidth;",[=](QVariant result)
int newWidth=result.toInt()+10;
webView->resize(newWidth,webView->height());
);

webView->page()->runJavaScript("document.documentElement.scrollHeight;",[=](QVariant result)
int newHeight=result.toInt();
webView->resize(webView->width(),newHeight);
);

注意:我添加了 10 像素宽度的边距

【讨论】:

确实,经过大量的试验和错误,看起来是唯一的方法,谢谢!【参考方案2】:

检查QWebEnginePage::geometryChangeRequested 信号是否符合您的要求。

您还可以通过创建QWebEngineView(它是QWidget)并调用QWebEngineView::setPage(yourPage) 来显示QWebEnginePage

【讨论】:

以上是关于Qt5.4-QtWebEngine中如何获取网页的contentSize的主要内容,如果未能解决你的问题,请参考以下文章

C#如何获取当前网页的title

如何获取网页的url

如何使用 C# 从网页中获取数据

如何获取网页中的css

急!加分!如何获取网页视频中的URL地址?如优酷、腾讯这些在线的URL格式。

如何获取网页中的json数据?