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的主要内容,如果未能解决你的问题,请参考以下文章