Визуализация HTML в QImage/QPicture с использованием QWebFrame
Я пытаюсь отобразить html-данные в qimage или qpicture, используя QWebPage/QWebFrame без QWebView:
#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 рендеринга правильно?
1 ответ
Решение
ХОРОШО. Я наконец понял это. Мне нужно позвонить QWebPage::setViewportSize()
, Я полагаю, это автоматически устанавливается, если страница является частью QWebView.