Визуализация 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.

Другие вопросы по тегам