我试图在没有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?
答案 0 :(得分:2)
行。我终于搞清楚了。我需要致电QWebPage::setViewportSize()
。我想如果页面是QWebView的一部分,它会自动设置。