我试图将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();
}我在Win7 (x64)上使用Qt 4.7.3。让我知道我该如何解决这个问题。
发布于 2012-02-24 22:14:34
我不建议在paint事件上渲染webelemnt。可以经常触发Paint事件,或者只需要在小部件上绘制微小矩形。
最好有图像缓冲区,并在网络元素更改时更新它。
至少你可以试着写"render ( painter,paintEvent->rect() );“
https://stackoverflow.com/questions/6218967
复制相似问题