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

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

【问题讨论】:

    标签: qt qt5 qtwebengine


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      相关资源
      最近更新 更多