Если вам необходимо создать, а затем вывести/сохранить изображение, то эта статья для вас.
Для получения изображения мы воспользуемся методом render().
Итак. Для начала создадим html виджет
QWebView *view = new QWebView(parent);
И наполним его содержанием:
QString html = QString::fromLocal8Bit(«<div class=’q’><div class=’vote’><a href=’/quote/409943′>409943</a>[ <span id=’v409943′>1827</span> ]<a href=’/quote/409943/rulez’>смешно</a> /<a href=’/quote/409943/bayan’>[:||||:]</a> /<a href=’/quote/409943/sux’>не смешно</a> /утверждена 2011-03-15 в 08:46</div><div>xxx: Вот просто интересно посмотреть, кто эту рекламу делал, заглянуть в его фасеточные глаза, узнать откуда у него тентакли растут. <br>xxx: Потому что гуманоид до такого не додумается.</div></div>»);
view->setHtml(html);
Получим размер контента на странице:
QSize size = view->page()->mainFrame()->contentsSize();
И установим его в качестве размера Viewport’а:
view->page()->setViewportSize(size);
Теперь получим изображение и сохраним его:
QImage image;
image = QImage(view->page()->viewportSize(), QImage::Format_ARGB32);
QPainter painter(&image);
view->page()->mainFrame()->render(&painter);
painter.end();
image.save(«output.png»);
Таким образом будет создано изображение output.png содержащее «скрин» страницы.