我正在尝试将QWebElement渲染到QWidget中但我的应用程序崩溃了,但是如果我将它渲染到QImage中,一切都很好。
这是我的代码:
// using this code my application is crashing
void ImageWidget::paintEvent(QPaintEvent *)
{
if (this->imgElement != NULL)
{
QPainter p(this);
this->imgElement->render(&p);
p.end();
}
}
// using this one everything works OK
void ImageWidget::saveImage(QWebElement *el)
{
this->imgElement = el;
QImage m_image = QImage(290, 80, QImage::Format_ARGB32_Premultiplied);
m_image.fill(Qt::transparent);
QPainter p(&m_image);
el->render(&p);
p.end();
m_image.save("some_file.png", "png");
this->update();
}
我在Win 7(x64)上使用Qt 4.7.3。让我知道如何解决这个问题。
答案 0 :(得分:0)
我不建议在paint事件上渲染webelemnt。可以经常触发绘制事件,或者只需要在窗口小部件上绘制微小的矩形。
最好拥有图像缓冲区并在网页元素更改时更新它。
至少你可以尝试写“render(painter,paintEvent-> rect());”