1

我正在尝试使用没有 QWebView 的 QWebPage/QWebFrame 将 html 数据渲染到 qimage 或 qpicture:

#include <QtWebKitWidgets>

auto htmlData = R"(
<!DOCTYPE html>
<html>
<body>
<p>A quick brown fox jumps over the lazy dog.</p>
</body>
</html>
)";

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebPage page;
    auto frame = page.mainFrame();
    frame->setContent(htmlData, "text/html");

    QImage img(500, 500, QImage::Format_ARGB32);
    QPainter p(&img);
    frame->render(&p);
    p.end();
    img.save("html.png");

    return 0;
}

结果图像为空白。QWebFrame::print 确实会生成正确的 PDF 文件。

我需要做什么才能使 html 正确呈现?

4

1 回答 1

2

好的。我终于弄明白了。我需要打电话QWebPage::setViewportSize()。我猜如果页面是 QWebView 的一部分,它会自动设置。

于 2014-03-17T13:40:58.967 回答