【问题标题】:How to capture full web page using QtWebEngine?如何使用 QtWebEngine 捕获完整的网页?
【发布时间】:2019-03-22 08:34:41
【问题描述】:

我在 QWebEngineView 对象中使用以下代码将网页捕获到图像:

image=new QImage(w,h, QImage::Format_ARGB32);
painter = new QPainter(image);
render(painter);
image->save(imagefilename);

不幸的是,它仅将小部件上显示的网页的一部分呈现到图像中。如何将整个页面渲染到图片上?

【问题讨论】:

    标签: qt screen-capture qtwebengine webpage-screenshot


    【解决方案1】:

    可以hide webview 并调整其大小以显示整个网页。我正在使用 PyQt5(5.12 版),但这个想法也应该适用于 C++ Qt:

    # Create hidden QWebEngineView
    view.setAttribute(Qt.WA_DontShowOnScreen)
    view.show()
    ...
    
    # Resize the view and then capture image
    def take_screenshot():
        view.grab().save(output_file, b'PNG')
    
    size = view.page().contentsSize().toSize()
    view.resize(size)
    QTimer.singleShot(1000, take_screenshot)
    

    【讨论】:

      猜你喜欢
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多